Odpowiedzi:
Użyj polecenia find:
find . -type d -name .svn -exec rm -rf {} \;
{} to nazwa pliku, -type d oznacza katalogi.
Ostrzeżenie: używaj find i rm razem z ostrożnością!
-depth
(patrz moja odpowiedź).
find . -depth -type d -name .svn -exec rm -rf {} \;
Różnice w stosunku do innych przedstawionych już rozwiązań:
bez -depth
polecenia polecenie spróbuje ponownie przejść do katalogu .svn po jego usunięciu, co spowoduje pojawienie się komunikatów o błędach.
bez -type d
(co ogranicza wyszukiwanie do katalogów), usuwasz również pliki o podanej nazwie. (Najprawdopodobniej nie będziesz ich mieć, ale nie powinieneś ryzykować, robiąc kombinację „znajdź” i „rm”.)
Jeśli twoją dokładną potrzebą jest usunięcie .svn
katalogów, a nie bardziej ogólne rozwiązanie do usuwania katalogów o określonych nazwach, powinieneś rozważyć użycie svn export :
$ svn export . /tmp/new-dir
Spowoduje to utworzenie kopii obszaru roboczego svn w bieżącym katalogu do nowego katalogu pod adresem /tmp/new-dir
. Nie musisz najpierw tworzyć nowego katalogu. Subversion zajmie się tym za Ciebie.
find . -name .svn -exec rm -rf {}\;
Powinien działać dla ciebie.
Najpierw znajduje wszystkie foldery o nazwie .svn
Następnie wykonuje rm -rf
dla każdego znalezionego folderu.
Wynik:
Nigdy więcej folderów .svn
\;
.