删除顶层下的大量目录

删除顶层下的大量目录

我有一个目录,其中充满了具有相同结构的其他几个目录,所以它看起来像这样

top/A/Output/platform/..
top/B/Output/platform/..
top/C/Output/platform/..

等等。我想从级别开始top,删除目录下面的所有目录platform,这样我最终会得到

top/A/Output
top/B/Output
top/C/Output

有人可以推荐我一个命令吗?我在 rhel7 上,bash 4.1.2

编辑:

我有很多“二级”目录,其名称比单个字母更复杂,抱歉应该更明确地指出

答案1

rm -rf top/?/Output/platform

或者,如果二级目录可能超过一个字符(示例中为 A、B 或 C):

rm -rf top/*/Output/platform

答案2

man find参阅更多选项,例如正则表达式模式:

find top -type d -name platform -print0 | xargs -0 rm -rf

答案3

您可以使用这种方式查找:

find top -path 'top/*/Output/platform' -delete

请注意,这将删除以点开头的文件和目录。

以下命令不会删除以点开头的文件和目录,因为 shell 在替换星号时会跳过它们:

rm top/*/Output/platform

相关内容