Как рекурсивно удалить .svn директории

Опубликовано

Иногда после получения рабочей копии проекта из хранилища Subversion требуется удалить все служебные поддиректории .svn и их содержимое.

Здесь описано как это сделать. Способ работает в Linux, FreeBSD, Mac OS X, Cygwin и практически любой unix-совместимой ОС с командами rm и find

Шаг 1 Проверяем текущую директорию

Убедитесь что вы находитесь в нужной директории, чтобы случайно не запустить в корне файловой системы.

pwd

Шаг 2 Используем find чтобы найти поддиректории .svn

Наберите в командной строке

find . -type d -name .svn 

Вы получите список результатов поиска, что-то вроде

./.svn
./sourceA/.svn
./sourceB/.svn
./sourceB/module/.svn
./sourceC/.svn

Так мы убедимся, что find находит то, что нам нужно.

Шаг 3 Передаем результаты find команде rm

Вот итоговая команда, которая удалит все поддиректории .svn:

rm -rf `find . -type d -name .svn`

В случае, если вы получите сообщение о том, что число аргументов команды rm слишком велико, попробуйте следующий вариант команды:

find . -type d -name .svn | xargs rm -rf

Альтернативный способ с использованием svn

svn export корень_рабочей_копии_svn папка_результат

Удачи!

Дополнения? Комментарии?

E76e18cf6c8c78afd6e986a34d90aa3b
support

find . -type d -name .svn exec rm -r {} \;

Cf3ca13062201ecd00d2900a58220b92
dancetrain

find . -type d -name .svn -delete

Возможность добавлять комментарии временно отключена, извините.