微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

"""CommandException: 没有匹配的 URL您正在操作的文件是否存在?""" 运行 gsutil -m rm -r -I 命令时出错

如何解决"""CommandException: 没有匹配的 URL您正在操作的文件是否存在?""" 运行 gsutil -m rm -r -I 命令时出错

我在 gcs 存储桶中存储了许多文件夹,我想递归删除这些文件夹。

gsutil -m ls -d gs://bucket_name/folder_1/*/ | grep 2021-03-17 | gsutil -m rm -r 

所以基本上我想递归删除所有名称包含“2021-03-17”字符串的文件夹。

运行时出现以下错误

CommandException: No URLs matched. Do the files you're operating on exist?

我无法单独删除每个文件,我的用例是递归删除文件夹本身。

我该如何解决这个错误

解决方法

使用 xargs 从 grep 的输出中每行执行 gsutil rm -r 行。

gsutil ls -d gs://bucket_name/folder_1/* | grep 2021-03-17 | xargs gsutil -m rm -r

测试: enter image description here

,

这听起来像是您可能想要为其编写一个小型包装器脚本的内容。您当前拥有的管道不考虑命令 #1 的命令输出为空。此外,除非您使用 gsutil rm 标志(您也可以使用 xargs 替换参数),否则 -I 不接受来自标准输入的项目。我认为值得编写一个简短的包装脚本来完成这些事情:

  • 运行 gsutil ls 命令以获取目录(可能不存在目录,这可能就是您看到该消息的原因)。
  • 对于每个目录,查看它是否与正则表达式匹配。
  • 提供 gsutil -m rm 的匹配路径作为参数。如果匹配项超过 ~32k(命令的最大参数数),则需要分批进行。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。