Deleting directories in bash

This is a simple command: rm -rf dir But i have an interesting problem to solve. My bash script calls composer install on a composer script, this then makes vendor/app-name/ in the directory the composer install was run in. which is fine, the problem is I am now doing something like:

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

to copy everything from vendor. Ok that's define, but there could be 300 app-name folders in there (obviously all with different names other then app-name), each might have a .gitignore, .git directory or a documentation Directory. I want to say:

Walk through each of the folders, looking for .git/, .gitignore or Documentation and delete them if found.

How can I do this in bash?

note: All the packages that are being pulled down are pulled down via git, how ever the user may choose to add additional ones pulled down from composer package land. the same concepts should still apply.

Answers


To remove all of .git/, .gitignore, or Documentation you can try:

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

Probably there's a better way, but off the top of my head I would do this:

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

First line deletes all folders named .git, second line all files named .gitignore, third line all folders named Documentation.


Need Your Help

How to specify the delimiter when importing CSV files via OLEDB in C#

c# csv oledb

I need to perform a complex import in a Microsoft SQL Server 2000.