Как мне рекурсивно удалить все файлы в папке, которые начинаются с "._"? - PullRequest
2 голосов
/ 15 августа 2010

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

Ответы [ 4 ]

5 голосов
/ 15 августа 2010

Я думаю, что вы имели в виду "предварительно"

ПОСЛЕДНЕЕ РЕДАКТИРОВАНИЕ

SH скрипт: find . -name ".?*" -exec rm {} \; Предыдущий код не работал рекурсивно; этот делает. Если вы тоже хотите удалить папки, используйте это: find . -name ".?*" -exec rm -R {} \;

2 голосов
/ 07 февраля 2013

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

find /var/www/html \( -name '.DS_Store' -or -name '._*' \) -delete
1 голос
/ 15 августа 2010

Edit: Пользователь Gilles ниже правильно упоминает, что следующая альтернативная техника может быть опасной, потому что xargs не обрабатывает одинарные и двойные кавычки в имени файла буквально.Файл с именем Today's special.txt может вызвать ошибку (неопределенные кавычки).Я по-прежнему включаю его сюда для полноты картины, поскольку он широко упоминается в Интернете.

Еще один аналогичный способ сделать это в Unix / Mac путем передачи в rm.

find . -name '.*' -type f | xargs rm -f

Аргумент -type f говорит о том, что он игнорирует каталоги и специальные файлы, такие как., .., символические ссылки и файлы разработки.

К сожалению, мы не можем использовать что-то вроде rm -R .*, поскольку шаблон ввода .*раскрывается оболочкой перед передачей в команду rm.Это приведет к рекурсивному удалению всех файлов, которые соответствуют файлам из начального каталога.

Эквивалентная команда Windows (del -R .*) для пользователя намного проще, поскольку программа del выполняет работу по расширению подстановочных знаковдля каждого подкаталога.

0 голосов
/ 04 ноября 2014
find . \( -name '.DS_Store' -or -name '._*' \) -type f -print0 | xargs -0 rm -f

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

...