在bash中删除目录

时间:2014-01-28 15:39:38

标签: git bash

这是一个简单的命令:rm -rf dir但我有一个有趣的问题需要解决。我的bash脚本在作曲家脚本上调用composer install,然后在运行vendor/app-name/的目录中生成composer install。这很好,问题是我现在正在执行以下操作:< / p>

cp -R /vendor/ . 
# I believe this is correct for copying everything 
# out out of vendor and into root

从供应商处复制所有内容。好了,但是那里可能有300个app-name文件夹(显然除了app-name之外都有不同的名称),每个文件夹可能有.gitignore.git目录或者文档目录。我想说:

浏览每个文件夹,查找.git /,.gitignore或文档,如果找到则删除它们。

我怎样才能在bash中执行此操作?

注意:所有正在下拉的软件包都是通过git下拉的,用户可以选择添加从composer软件包下拉的其他软件包。同样的概念仍应适用。

2 个答案:

答案 0 :(得分:5)

要删除所有 .git / .gitignore 文档,您可以尝试:

find \( -name ".git" -o -name ".gitignore" -o -name "Documentation" \) -exec rm -rf "{}" \;

答案 1 :(得分:3)

可能有更好的方法,但是我会做到这一点:

find . -type d -iname .git | xargs rm -rf
find . -type f -iname .gitignore | xargs rm
find . -type d -iname Documentation | xargs rm -rf

第一行删除所有名为.git的文件夹,第二行删除所有名为.gitignore的文件,第三行删除所有名为Documentation的文件夹。