搜索目录并删除Bash中的文件夹和文件

时间:2014-03-19 15:05:47

标签: bash

我有一个进入components/的bash脚本并运行以下命令:

cp -R vendor/* .

然后我有第二个命令遍历任何文件夹,接受供应商文件夹,在组件目录中找到.git/,'。gitignore'和Documentation/并删除它们。无论如何:

  • 我不认为这是递归的
  • 由于顶点或权限(我应该添加sudo),它实际上并没有删除这些文件和目录吗?

从供应商复制的目录可能如下所示:

something/
    child-directory/
        .git/ // -- Should be removed.

有问题的命令是:

  find -name vendor -prune -o \( -name ".git" -o -name ".gitignore" -o -name "Documentation" \) -prune -exec rm -     rf "{}" \; 2> /dev/null || true  

现在,如果是权限错误,我不会知道它,因为我希望它忽略任何错误并继续使用脚本。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我认为问题出在选项-prune中。无论如何,这可能对你有用......

find vendor -name '.git' -o -name '.gitignore' -o -name 'Documentation' | xargs rm -rf