52

Какую команду я могу ввести в Терминал, чтобы я мог удалить все папки .svn внутри папки (и из всех подкаталогов), но не удалить ничего другого?

1 ответ1

117
cd to/dir/where/you/want/to/start
find . -type d -name '.svn' -print -exec rm -rf {} \;
  • Используйте find, которая делает рекурсию
  • в текущем каталоге.
  • Тип файла является каталогом
  • имя файла .svn
  • выведите то, что соответствует этому моменту (.svn dirs)
  • выполните команду rm -rf (thing found from find) . {} является заполнителем для найденной сущности
  • ; говорит найти, что команда для exec выполнена. Поскольку оболочка также имеет представление о том, что; вы должны экранировать его с помощью \, чтобы оболочка не сделала с ним ничего особенного, а просто прошла, чтобы найти

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .