Linux 中带条件的递归 rm

Linux 中带条件的递归 rm

我有以下文件夹结构:

parent
 - folder1
   - main1.x
   - main1.y
   - main1.z
   - main1-626262.x
   - main1-626263.x
   - main1-626264.x
   - main1-626265.x
   - main1-626266.x
   - main1-626267.x
 - folder2
   - main2.x
   - main2.y
   - main2.z
   - main2-726262.x
   - main2-726263.x
   - main2-726264.x
   - main2-726265.x
   - main2-726266.x
   - main2-726267.x

现在,我想删除:main-*********.x

因此,我需要的文件夹结构:

parent
 - folder1
   - main1.x
   - main1.y
   - main1.z
 - folder2
   - main2.x
   - main2.y
   - main2.z

那么,我该如何实现这个目标呢?

答案1

尝试这个:

find * -name 'main?-*.x' | xargs echo rm -rf

上面的命令会删除不需要的目录(没有实际上是删除它们)。如果看起来没问题,只需运行打印的命令,或者运行

find * -name 'main?-*.x' | xargs rm -rf

答案2

简单命令:

rm `find ./ -name 'main?-*.x'` -rf

祝你好运!

答案3

rm */*[0-9][0-9][0-9][0-9][0-9][0-9].*

但需要 bash 或 sh 来评估。不知道 C-Shell,如果它不起作用,将有一些类似的语法可用。

相关内容