Назад | Перейти на главную страницу

Удаление файлов определенного расширения unix

Быстрый вопрос, как мне рекурсивно удалить файлы определенного расширения? Я хочу удалить все папки .svn из проекта.

rm -Rf www/ "*.svn"

Вышеупомянутое, кажется, удаляет все. Я использую FreeBSD.

Спасибо

Сначала убедитесь, что вам нравится список.

find www -name '.svn' -type d -ls

Ограничить каталогами. SVN всегда называет их .svn.

find www -depth -name '.svn' -type d -exec rm -rf {} \;

Мне нравится использовать команду xargs, я считаю ее более интуитивно понятной, поэтому:

find www -name '.svn' -type d -print0 | xargs -0 rm -r

если вы хотите удалить папки .svn, если вы заинтересованы в удалении файлов:

find www -name '.svn' -type f -print0 | xargs -0 rm

или можно все удалить:

find www -name '.svn' -print0 | xargs -0 rm -r

если вы хотите быть уверены в том, что удаляете, запустите команду find без xargs :-)

удачи!

chdir в рабочий каталог и запустите:


find . -iname '.svn' -exec rm -fr {} \;
OR you can specify the path directory like this:


find path -iname '.svn' -exec rm -fr {} \;

Набрав:

rm -Rf www/ "*.svn"

Вы просите удалить папку www и все файлы * .svn.

Вы определенно хотите удалить все * .svn внутри папки www, поэтому вам следует использовать:

rm -Rf www/*.svn

(без пробела)

не уверен, что это лучший способ избавиться от репозитория, но это должно сделать то, что вам нужно:

find www -name "*.svn" -exec rm -rfv {} \;

Обновить: вот хорошее описание BSD find.