Как указано в заголовке, я пытаюсь рекурсивно удалить все файлы в папке, которая начинается с ._
. Для каждого файла на моем сайте существует файл с тем же самым точным именем, но с добавленным к нему ._
. Как я могу избавиться от них?Как я могу рекурсивно удалить все файлы в папке, начинающейся с «._»?
ответ
Я думаю, что вы имели в виду "предваряется"
СПУСТЯ EDIT
SH сценарий:
find . -name ".?*" -exec rm {} \;
предыдущий код не работает рекурсивно; это один. Если вы хотите удалить папки тоже, используйте:
find . -name ".?*" -exec rm -R {} \;
Учитывая использование «рекурсивно» в вопросе, я думаю, что это должно быть «-name». * «'. Кроме того, если ваша система довольно старая и еще не поддерживает ее, '-exec rm {} +' будет вызывать 'rm' в пакете вместо одного раза в файл. – Gilles
@ Gilles исправил его, спасибо –
Возможно, вы захотите использовать 'find. -name "._? *" -exec rm {} \; ', так как только точка удалит все файлы, начинающиеся с". ", например' .git'. –
Edit: Жиль Пользователь ниже правильно указывает, что следующий альтернативный метод может быть опасно, потому что xargs не обрабатывает одинарные и двойные кавычки в имени файла, в буквальном смысле. Файл с именем Today's special.txt
вызовет ошибку (незавершенные кавычки). Я все еще включаю его здесь для полноты, поскольку он широко упоминается в Интернете.
Другой подобный способ выполнения этого на Unix/Mac путем подачи трубопровода на rm.
find . -name '.*' -type f | xargs rm -f
-type f
аргумент указывает его игнорирует каталоги и специальные файлы, такие как., .., символические ссылки и дэвов.
Мы, к сожалению, не можем использовать что-то вроде rm -R .*
, потому что шаблон ввода .*
расширяется оболочкой перед передачей команды rm. Это приведет к рекурсивному удалению всех файлов, соответствующих тем из стартового каталога.
винда эквивалент команды (del -R .*
) намного проще для пользователя, поскольку программа del
делает работу расширения wildchards для каждого подкаталога.
1. Аргумент '-name' должен быть просто' '. * ''. 2. Это не будет работать, если есть имя файла (включая ведущие каталоги), содержащие пробелы или '\" '', потому что' xargs' обрабатывает эти символы специально. Не используйте 'xargs', если вы точно не знаете, что эти символы не встречаются ни в одном имени файла или каталога. Вместо этого используйте '-exec', как в ответе Габи. Здесь, так как команда' rm', вероятность катастрофы особенно велика. – Gilles
-type f гарантирует, что dirs, включая., .. игнорируются. Хорошая точка, хотя и имеет файлы с '
и "
в их именах.xargs пытается их интерпретировать и что вызывает проблемы. Я обновляю свой ответ с вашим предупреждением. Я по-прежнему считаю, что полезно включать этот способ делать вещи. Простой поиск показывает много упоминаний об этом. –
Alkaline
Возможный дубликат this post, и я использовал его успешно на собственном производственном сервере:
find /var/www/html \(-name '.DS_Store' -or -name '._*' \) -delete
find . \(-name '.DS_Store' -or -name '._*' \) -type f -print0 | xargs -0 rm -f
Используйте эту команду, чтобы включить файлы и папки с пространством в их имен в этой категории, а также ,
- 1. Рекурсивно удалить все двоичные файлы в папке
- 2. Как просмотреть все файлы в папке, начинающейся с номера?
- 3. Найти все .php файлы в папке рекурсивно
- 4. Рекурсивно протестировать все файлы flac в папке
- 5. Открыть все файлы в папке, начинающейся с определенной буквы
- 6. Как удалить файлы рекурсивно
- 7. Как я могу прочитать все файлы в папке с dlmread?
- 8. Как проверить, все ли файлы в папке прочитаны только рекурсивно?
- 9. Как я могу конкатенировать все JS-файлы в папке?
- 10. Как я могу получить все файлы .pdb в одной папке?
- 11. Рекурсивно распечатывать все файлы и папки в папке
- 12. SVN игнорировать рекурсивно все файлы .js в папке
- 13. Как удалить все файлы в папке с папкой на PHP?
- 14. Как удалить все файлы с определенным расширением в папке?
- 15. Как рекурсивно удалить все файлы SVN с помощью PowerShell
- 16. Сценарий Python рекурсивно переименовывает все файлы в папке и подпапках
- 17. Рекурсивно печатать все файлы в папке до определенной глубины
- 18. Как я могу найти файлы CSS рекурсивно?
- 19. Как рекурсивно удалить все файлы в папке, DonT соответствуют заданному шаблону
- 20. Как я могу рекурсивно удалить каталог и все его содержимое (файлы + sub dirs) в PHP?
- 21. Как я могу удалить файлы в Python
- 22. Как удалить все файлы в папке хранения файлов Azure?
- 23. Получите все файлы рекурсивно в каталогах NodejS
- 24. Как получить все файлы в папке?
- 25. Как удалить все файлы в папке после определенного времени
- 26. Как рекурсивно удалить резервные файлы emacs?
- 27. Как удалить все файлы, кроме последних трех в папке
- 28. Как удалить все в папке с C#
- 29. Как я могу перечислить все файлы в подкаталоге в scala?
- 30. Как удалить все файлы в папке, но не сама папка?
Какой язык программирования вы используете? –