4

Я пытаюсь найти команду для рекурсивного удаления всех файлов, сгенерированных Apple Mac, таких как «._» с диска. Пока что у меня есть:

find . -name '._*' -exec rm -rf {} \;

Однако, похоже, это не сработало.

4 ответа4

10

Там теперь лучший способ!

Смотрите man dot_clean начиная с OS X 10.5.

dot_clean -n . не будет просто удалять файлы точек подчеркивания в текущем каталоге и под ним, он объединит их информацию в родительский файл, если его там еще нет (и я предполагаю, что вы хотите -n также удалить файл точек подчеркивания, если его нет соответствующий нативный файл).

2

Использование точки в качестве первого аргумента начинается в каталоге, в котором вы находитесь.

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

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

Итак, полная команда выглядит так:

sudo find / -name "._*" -exec rm -rf {} \;

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

0

находить . (-name '._ *') -exec rm {} -rf \; должно сработать

Я не знаю, отличается ли он в OSX от bash.

0

Я знаю: этот пост устарел. Во всяком случае я пишу здесь, потому что это первый, что я нашел! У меня была та же проблема с учетной записью Dropbox, которую я использовал на Mac OSX, теперь перенесен на Windows / Linux Ubuntu. Используя bash (мой - это Cygwin64 bash), я набрал в своей папке Dropbox:

find . -regex '.+/\._.+' -exec rm {} \;

Обратите внимание, что -rf был удален из вышеупомянутых решений. «._» должны быть только файлами, поэтому не добавляйте слишком много полномочий в команду rm! ;)

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