查找并删除多个参数目录

时间:2013-04-07 14:27:41

标签: bash find ls

假设我在名为.git的文件夹中有3个目录.hg.svnlol

如何找到并删除所有这些?

以下内容仅适用于最后一个(.svn):

$ find lol -type d -name .git -o -name .hg -o -name .svn -delete

E:这可以通过ls完成,但不能没有shopt -s globstar(因为我没有使用zsh执行此操作):

$ shopt -s globstar
$ rm -r $(ls -d ceaw/**/.{git,hg,svn})

E2:另一种解决方案是:

$ find lol -type d -name .git -o -name .hg -o -name .svn | xargs rm -rf

1 个答案:

答案 0 :(得分:2)

请尝试使用-exec选项。

find lol -depth -type d \( -name .git -o -name .hg -o -name .svn \) -exec rm -r '{}' \;