在 Linux 中,如何删除嵌套在文件夹层次结构深处的具有特定名称的文件夹?
以下路径位于文件夹下,我想删除所有名为 a
的文件夹。
1/2/3/a
1/2/3/b
10/20/30/a
10/20/30/b
100/200/300/a
100/200/300/b
我应该从父文件夹中使用什么 Linux 命令?
原文由 Joe 发布,翻译遵循 CC BY-SA 4.0 许可协议
使用 find for name “a” 并执行 rm 删除那些根据您的意愿命名的,如下:
find . -name a -exec rm -rf {} \;
首先使用 ls 进行测试以列出:
find . -name a -exec ls {} \;
为确保这只删除目录而不是普通文件,请使用“-type d”参数(如评论中所建议):
find . -name a -type d -exec rm -rf {} \;
“{}”是对找到的每个文件“a”的替换 - 通过替换对每个文件执行 exec 命令。
原文由 wmorrison365 发布,翻译遵循 CC BY-SA 3.0 许可协议
7 回答5.3k 阅读
4 回答4k 阅读
2 回答5.9k 阅读✓ 已解决
2 回答2.5k 阅读✓ 已解决
1 回答2.3k 阅读✓ 已解决
2 回答793 阅读✓ 已解决
2 回答3.2k 阅读
如果目标目录为空,使用find,只过滤目录,按名称过滤,执行rmdir:
如果要递归删除其内容,请将
-exec rmdir {} \;
替换为-delete
或-prune -exec rm -rf {} \;
。其他答案包括有关这些版本的详细信息,也应归功于它们。