这是一个简单的命令: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软件包下拉的其他软件包。同样的概念仍应适用。
答案 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的文件夹。