如何删除特定文件夹中的特定文件夹

时间:2017-05-24 11:11:59

标签: bash

使用

find . -name "*_develop-*"

我能够在文件夹名称中找到当前目录中包含_develop-的所有文件夹,例如

myfolder_develop-abcd  
myfolder_develop-efgh

现在在这些找到的文件夹中,我想删除文件夹“temp” 如何管道所需的命令以查看生成的文件夹,找到所需的文件夹然后将其删除?

3 个答案:

答案 0 :(得分:1)

您可以使用-exec选项在匹配文件夹上发出rm -rf命令。

命令应该是这样的:

find . -name "*_develop-" -exec rm -rf  {}/tmp/ \;

{}代表匹配文件夹,因此{}/tmp/代表匹配文件夹中的tmp文件夹

答案 1 :(得分:1)

你可以使用-regex flag

find . -regex '.*_develop-.*/temp' -type d -delete

或者如果它是

正下方的文件夹
find . -regex '.*_develop-[^/]*/temp' -type d -delete

答案 2 :(得分:0)

使用find with xargs

find . -wholename "*_develop-*/temp" -print0 | xargs -0 rm -rf

使用print0xargs -0NULL字符替换空格。如果某些目录名中有空格很有用,那么没有它就会失败。

您可以使用find . -wholename "*_develop-*/temp" -delete但如果temp目录不为空,则会失败。