Скрипт Bash для рекурсивного обхода папок и удаления файлов - PullRequest
5 голосов
/ 01 сентября 2010

Может ли кто-нибудь дать мне скрипт bash или однострочную команду, которую я могу запустить на linux, чтобы рекурсивно пройти каждую папку из текущей папки и удалить все файлы или каталоги, начинающиеся с '._'?

Ответы [ 6 ]

14 голосов
/ 01 сентября 2010

Измените каталог на нужный вам корневой каталог (или измените . на каталог) и выполните:

find . -name "._*" -print0 | xargs -0 rm -rf

xargs позволяет передавать несколько параметров одной команде, поэтому это будет быстрее, чем использование синтаксиса find -exec. Кроме того, вы можете запустить его один раз без | для просмотра файлов, которые он удалит, убедитесь, что это безопасно.

3 голосов
/ 01 сентября 2010
find . -name '._*' -exec rm -Rf {} \;
0 голосов
/ 20 октября 2014

Вместо удаления файлов AppleDouble вы можете объединить их с соответствующими файлами.Вы можете использовать dot_clean.

dot_clean - объединять файлы ._ * с соответствующими собственными файлами.

Для каждого каталога, dot_clean рекурсивно объединяет все файлы ._ * с соответствующими имнативные файлы в соответствии с правилами, указанными с заданными аргументами.По умолчанию, если в собственном файле есть атрибут, который также присутствует в ._ файле, будет использоваться самый последний атрибут.

Если операнды не заданы, выводится сообщение об использовании.Если указано более одного каталога, каталоги объединяются в том порядке, в котором они указаны.

Поскольку dot_clean по умолчанию работает рекурсивно, используйте:

dot_clean <directory>

Если вы хотитечтобы отключить рекурсивное слияние, используйте -f для плоского слияния.

dot_clean -f <directory>
0 голосов
/ 26 июня 2012

find . -name '.*' -delete

Немного короче и эффективнее в случае длинного списка файлов чрезвычайно .

0 голосов
/ 01 сентября 2010
find /path -name "._*" -exec rm -fr "{}" +;
0 голосов
/ 01 сентября 2010

У меня была похожая проблема некоторое время назад (я предполагаю, что вы пытаетесь очистить диск, который был подключен к Mac, который сохраняет много этих файлов), поэтому я написал простой скрипт на python, который удаляет эти другие бесполезные файлы; может быть вам это пригодится:

http://github.com/houbysoft/short/blob/master/tidy

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...