![Linux 中带条件的递归 rm](https://linux22.com/image/1268512/Linux%20%E4%B8%AD%E5%B8%A6%E6%9D%A1%E4%BB%B6%E7%9A%84%E9%80%92%E5%BD%92%20rm.png)
我有以下文件夹结构:
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,如果它不起作用,将有一些类似的语法可用。