Bash 如何删除特定文件夹中的特定文件夹
使用 我能够在当前目录中找到文件夹名称中包含Bash 如何删除特定文件夹中的特定文件夹,bash,Bash,使用 我能够在当前目录中找到文件夹名称中包含\u develop-的所有文件夹,例如 find . -name "*_develop-*" 现在,在这些找到的文件夹中,我想删除文件夹“temp”。 如何通过管道将所需命令导入结果文件夹,找到所需文件夹,然后将其删除?您可以使用-exec选项对匹配文件夹执行rm-rf命令 命令应该是这样的: myfolder_develop-abcd myfolder_develop-efgh {}表示匹配文件夹,因此{}/tmp/表示匹配文件夹中的tmp
\u develop-
的所有文件夹,例如
find . -name "*_develop-*"
现在,在这些找到的文件夹中,我想删除文件夹“temp”。如何通过管道将所需命令导入结果文件夹,找到所需文件夹,然后将其删除?您可以使用
-exec
选项对匹配文件夹执行rm-rf
命令
命令应该是这样的:
myfolder_develop-abcd
myfolder_develop-efgh
{}
表示匹配文件夹,因此{}/tmp/
表示匹配文件夹中的tmp文件夹您可以使用-regex标志
find . -name "*_develop-" -exec rm -rf {}/tmp/ \;
或者如果它是正下方的文件夹
find . -regex '.*_develop-.*/temp' -type d -delete
将find与xargs一起使用
find . -regex '.*_develop-[^/]*/temp' -type d -delete
使用print0
和xargs-0
将空格替换为NULL
字符。如果某些目录名中有空格,那么它很有用,因此如果没有空格,xargs将失败
您可以使用find
-wholename“*_develope-*/temp”-删除
,但如果temp
目录不为空,则删除操作将失败。您始终可以使用grep进行筛选,并使用xargs将结果传递到rm-rf命令。temp是developer文件夹中的一个文件夹,而不是文件夹名称的一部分。
find . -wholename "*_develop-*/temp" -print0 | xargs -0 rm -rf