У меня есть следующая структура:
/.svn
/bla/.svn
/hello/.svn
/bla/bla/bla/.svn
... etc
Я хочу удалить все папки .svn. Как мне это сделать?
Это не:
rm -rf .svn
В Windows вы используете триггер /s. Как ты делаешь это Linux?
У меня есть следующая структура:
/.svn
/bla/.svn
/hello/.svn
/bla/bla/bla/.svn
... etc
Я хочу удалить все папки .svn. Как мне это сделать?
Это не:
rm -rf .svn
В Windows вы используете триггер /s. Как ты делаешь это Linux?
Используйте команду find:
find . -type d -name .svn -exec rm -rf {} \;
{} - это имя файла, -type d означает каталоги.
Предупреждение: используйте find и rm вместе с осторожностью!
find . -depth -type d -name .svn -exec rm -rf {} \;
Отличия от других уже представленных решений:
без -depth
команда попытается вернуться в каталог .svn после удаления, что приведет к сообщениям об ошибках.
без -type d
(который ограничивает поиск по каталогам), вы также удалили бы файлы с указанным именем. (Скорее всего, у вас их не будет, но вы не должны рисковать, когда делаете комбинацию "find" и "rm".)
Если вам необходимо удалить .svn
а не более общее решение для удаления каталогов с конкретными именами, вам следует рассмотреть возможность использования экспорта svn:
$ svn export . /tmp/new-dir
Это создаст копию рабочей области svn в текущем каталоге в новый каталог в /tmp/new-dir
. Вам не нужно сначала создавать новый каталог. Subversion позаботится об этом за вас.
find . -name .svn -exec rm -rf {}\;
Должно работать на вас.
Сначала он находит все папки с именем .svn
затем выполняет rm -rf
для каждой найденной папки.
Результат:
Нет больше .svn папок