56
34
What command can I type into the Terminal so that I can delete all .svn
folders within a folder (and from all subdirectories) but not delete anything else?
56
34
What command can I type into the Terminal so that I can delete all .svn
folders within a folder (and from all subdirectories) but not delete anything else?
121
cd to/dir/where/you/want/to/start
find . -type d -name '.svn' -print -exec rm -rf {} \;
rm -rf (thing found from find)
. the {} is a placeholder for the
entity found Another option if there are not too many would be to confirm deletion of each file with -exec rm -ri {} \;
– doovers – 2015-01-14T01:44:34.333
4-exec rm -rf {} +
is probably many times as fast, because it doesn’t have to launch too many rm
instances. Instead, it packs the maximum amount of arguments (directories to remove in this case) in one call. This is possible because rm
accepts multiple arguments. – Daniel B – 2015-02-17T18:33:58.147
2Good solution. While find
has -delete
it won't delete non-empty directories. This approach is cleaner than e.g. starting to match parts of the whole path of files. – Daniel Beck – 2012-02-09T17:02:04.730
13I'd recommend running it without the -exec rm -rf {} \;
the first time to make sure it's only finding what you want it to. I've never had an issue where I've accidentally deleting the wrong thing with it, because I always check first. – Rob – 2012-02-09T18:09:23.777
2@Rob good point, i usually do -exec echo rm -rf {} ; then remove the echo. – Rich Homolka – 2012-02-09T18:29:38.630
Maybe you could just
svn export path/to/repo path/to/export/to
instead... – Jonny – 2015-07-24T04:09:08.037A note on
svn export
is that is doesn't copy across files that are not part of svn. For example, I wanted to do this for an iOS application that uses Cocoa Pods where we do not commit the Pods folder. This was then skipped from the output. I ended up using something similar to Rich's answer for what I wanted. – jackofallcode – 2016-06-21T13:29:38.563