"""CommandException: 没有匹配的 URL。您正在操作的文件是不是存在?""" 运行 gsutil -m rm -r -I
Posted
技术标签:
【中文标题】"""CommandException: 没有匹配的 URL。您正在操作的文件是不是存在?""" 运行 gsutil -m rm -r -I 命令时出错【英文标题】:"""CommandException: No URLs matched. Do the files you're operating on exist? """ error while running gsutil -m rm -r -I command"""CommandException: 没有匹配的 URL。您正在操作的文件是否存在?""" 运行 gsutil -m rm -r -I 命令时出错 【发布时间】:2021-07-16 07:46:27 【问题描述】:我有很多文件夹存储在 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?
我不能单独删除每个文件,我的用例是递归删除文件夹本身。
我该如何解决这个错误?
【问题讨论】:
【参考方案1】:使用 xargs 从 grep 的输出中每行执行 gsutil rm -r
行。
gsutil ls -d gs://bucket_name/folder_1/* | grep 2021-03-17 | xargs gsutil -m rm -r
测试:
【讨论】:
【参考方案2】:这听起来像是您可能想要为其编写一个小的包装脚本。您当前拥有的管道不考虑命令 #1 的命令输出为空。此外,gsutil rm
不接受来自标准输入的项目,除非您使用 -I
标志(您也可以使用 xargs 替换参数)。我想说写一个简短的包装脚本来做这些事情是值得的:
gsutil -m rm
的匹配路径作为参数。如果有超过 32k 的匹配项(命令的最大参数数量),您需要分批进行。
【讨论】:
以上是关于"""CommandException: 没有匹配的 URL。您正在操作的文件是不是存在?""" 运行 gsutil -m rm -r -I的主要内容,如果未能解决你的问题,请参考以下文章
Process process = new ProcessBuilder().command("mount").redirectErrorStream(true).start();
VsCode自定义快捷键,一次运行两个或多个Command命令
VsCode自定义快捷键,一次运行两个或多个Command命令
Error: unknown command "set" for "etcdctl"
通过Texmates过滤新行";Filter through command";
解决 Command "python setup.py egg_info" failed with error code 1 问题