[Linux] Удаление файлов по расширению
Для рекурсивного удаления файлов определенного расширения можно использовать следующую команду:
find -name «*.extension» -type f -delete
Пример: в каталоге /var/www/site.com удалить все файлы с расширением .DS_Store:
find /var/www/site.com -name «*.DS_Store» -type f -delete
Для подстраховки можно сначала посмотреть, что будет удалено. Для этого:
find /var/www/site.com -name «*.DS_Store» -type f
Важно, чтобы ключ -delete был последним аргументом в команде. Если же его написать до -name , то команда удалит все содержимое.
Как удалить файлы определенного типа из командной строки или bat-файла

Очень часто возникает необходимость удалить все файлы с определенным расширением в каком-либо каталоге (или в каталоге и во всех его подкаталогах). Например, если мы хотим удалить все текстовые файлы с расширением *.txt в папке (и всех ее подпапках) C:\texts , то можно выполнить следующую команду:
Где
/f — удаляет все файлы, даже если у них установлен атрибут только чтение
/s — удаляет файлы из всех подкаталогов (если это не требуется, то данный ключ нужно убрать)
/q — отключает запрос на подтверждение удаления файла
C:\texts — каталог, в котором будут найдены и удалены все файлы. Вместо определенной папки, можно указать весь диск целиком, тогда выглядеть это будет так: C:\*.txt
*.txt — тип файлов (расширение), которые будут удалены
Была ли эта статья Вам полезна?
Комментарии к статье (3)
-
- Аноним
- 25.11.2022 20:18
Cпасибо! Работает, использовал для удаления файлов после работы PDFcreatora через bat.
- Ответить
- Гость
- 18.02.2022 09:31
Ну нигде не пишут как удалить КОНКРЕТНЫЙ файл. У всех удалить ВСЕ файлы с определенным расширением. Мне нужно удалить ОДИН конкретный файл.
Удалить все файлы с расширением командной строки Linux

Изучение
Каждый файл имеет определенное расширение. Если мы хотим удалить файлы с одинаковыми или разными расширениями из нашей системы Linux, мы должны выполнять множество различных типов команд. В этой статье мы увидим, как удалить все файлы с расширением командной строки Linux.
Удалить все файлы с расширением командной строки Linux
В этом разделе будут объяснены различные способы и методы удаления всех файлов с расширениями с помощью командной строки в Linux.
Использование команды rm
Команда ’rm’ — это базовая утилита командной строки в Linux для удаления сокетов, каналов, узлов устройств, символических ссылок, каталогов, системных файлов и т.д. Чтобы удалить файл с определенным расширением, используйте команду ’rm’. Эта команда очень проста в использовании, и ее синтаксис примерно такой.
В соответствующей команде «имя_файла1», «имя_файла2» и т.д. Обращайтесь к именам плюс их полные пути. Когда файлы находятся в одном каталоге, нам не нужно записывать полный путь, но мы должны указать полный путь, если это не так.
Мы можем использовать выражения с подстановочными знаками, чтобы указать инкрементные файлы с одинаковыми именами или файлы с определенными расширениями файлов. Итак, давайте рассмотрим пример, в котором мы удалим файлы DATA.txt, DATA1.txt и DATA2.txt. Эти файлы доступны в каталоге Documents, поэтому сначала мы откроем их в терминале с помощью следующей команды:
После этого выполните следующую команду
Теперь давайте проверим, что система успешно удалила файлы, поэтому выполните следующую команду/
Использование подстроки для удаления файлов
С помощью следующей команды мы можем удалить те файлы, которые содержат подстроку test.
Здесь «*» обозначает любую строку. Поэтому здесь «* test *» учитываются все файлы, имена которых имеют подстроку «test».
Мы можем легко удалить файлы с определенными расширениями из любой папки. В этом примере мы удалим файлы с расширением gif. Мы можем удалить все файлы GIF из папки, используя следующую команду.
Приведенный выше синтаксис работает только для файлов. Наряду с файлами мы также можем удалять папки с помощью аргумента ’-r’:
Главное отметить, что он удаляет папку в целом рекурсивно, то есть все файлы, подпапки и т.д. Этой папки во всей структуре папок. Это означает, что нет способа рекурсивно удалять файлы с определенными расширениями или файлы с шаблонами имен файлов.
Найти команду
Найти — самая эффективная и популярная команда для поиска файлов. Команда find используется для удаления расширений файлов в Linux. Команда find выполняет рекурсивный поиск файлов по размеру, расширению, имени и параметрам файла. Используя команду find, мы можем передать его вывод по конвейеру в ’rm’.
Резервное копирование и проверка файлов
Также используются различные команды, чтобы проверить, какие файлы мы удаляем, и их расположение правильное. Однако этот шаг необязателен, если необходимо убедиться.
Проверить местоположение
Мы должны убедиться, что расположение нашего файла правильное. Для этого мы используем следующую команду.
Резервные файлы
Для резервного копирования мы используем команду tar. Если мы не на 100% уверены, что у нас есть нужные файлы для удаления или нет, мы должны сделать резервную копию.
Мы можем добавить опцию -v, чтобы увидеть список файлов, резервные копии которых выполняет команда tar.
Удалить файлы с помощью find — удалить
Если мы не решаемся использовать rm, мы можем использовать find отдельно от этого. Его следует использовать с осторожностью. Это примерно так.
Прежде всего, мы убеждаемся, какой файл нам нужно удалить. Для этого мы используем следующую команду.
Мы должны позаботиться о том, чтобы -delete был последним аргументом в нашей команде. Если по ошибке мы поместим его перед аргументом -name *.bak, он удалит все.
Удалите файлы с помощью find и xargs
Он не поддерживает опцию «-delete». Мы можем передать его в ’rm’ следующим образом с выводом, который появляется перед нами при поиске.
Здесь мы передаем аргумент в rm с помощью команды xargs. Мы можем рекурсивно удалить всю структуру папок с помощью этого метода.
Удаляет файлы с помощью find-exec
Мы используем rm с различными командами (такими как корзина) или дополнительными параметрами для удаления файлов.
Как удалить все файлы с определенным расширением из папки и всех ее подпапок? [Дубликат]
Самый простой способ (если вы используете Ubuntu Desktop):
Перейдите в папку «Музыка» в «Наутилус», нажмите Ctrl + F и найдите .jpg.
& amp; затем удалите его
Вы также можете изменить местоположение, и вы можете сделать свой поиск более конкретным.

Обновлено
Быть более конкретным после поиска .jpg Щелчок по зеленой кнопке Select File type Picture & amp; затем удалите jpg только из поиска . dot & amp; затем reload, как показано на рис. ниже
. Что он делает, будет искать файл изображения, например .jpg .png .gif & amp; все остальные файлы, которые находятся в Picture Format
Самый простой способ (если вы используете Ubuntu Desktop):
Перейдите в папку «Музыка» в «Наутилус», нажмите Ctrl + F и найдите .jpg .
[/g1] & amp; затем удалите егоВы также можете изменить местоположение, и вы можете сделать свой поиск более конкретным.
[/g2]Обновлено
Быть более конкретным после поиска .jpg Щелчок по зеленой кнопке Select File type Picture & amp; затем удалите jpg только из поиска . dot & amp; затем reload , как показано на рис. ниже
. Что он делает, будет искать файл изображения, например .jpg .png .gif & amp; все остальные файлы, которые находятся в Picture Format
[/g3]Самый простой способ (если вы используете Ubuntu Desktop):
Перейдите в папку «Музыка» в «Наутилус», нажмите Ctrl + F и найдите .jpg .
[/g1] & amp; затем удалите егоВы также можете изменить местоположение, и вы можете сделать свой поиск более конкретным.
[/g2]Обновлено
Быть более конкретным после поиска .jpg Щелчок по зеленой кнопке Select File type Picture & amp; затем удалите jpg только из поиска . dot & amp; затем reload , как показано на рис. ниже
. Что он делает, будет искать файл изображения, например .jpg .png .gif & amp; все остальные файлы, которые находятся в Picture Format
[/g3]Быстрое и чистое решение для командной строки было бы
., чтобы начать поиск в текущей папке. -type f говорит только искать файлы. -iname делает регистр поиска нечувствительным. -delete сообщает find для удаления / удаления всех найденных файлов.
Сначала я рекомендую запустить команду без -delete, чтобы получить список файлов, которые будут удалены, когда -delete включен в команду. В этом случае небольшая опечатка не удалит все, что вы не намеревались.
Для получения дополнительной информации о том, как использовать find и что он может видеть man find
Обратите внимание, что find не будет выдавать какой-либо выход, если используется -delete.
Это должно сделать это
, который удалит все .JPG-файлы в папке «Музыка».
Bash’s shopt -s globstar может быть полезен здесь для рекурсивного globbing:
Быстрое и чистое решение для командной строки будет
- . сообщает, чтобы начать поиск в текущей папке.
- -type f сообщает найти / искать только файлы.
- -iname делает регистр поиска нечувствительным.
- -delete сообщает find для удаления / удаления всех найденных файлов.
Сначала я рекомендую запустить команду без -delete , чтобы получить список файлов, которые будут удалены, когда -delete включен в команду. Таким образом, небольшая опечатка не удалит все, что вы не намеревались.
Для получения дополнительной информации о том, как использовать find и что она может видеть man find
Обратите внимание, что find не будет выдавать выход, если используется -delete .
Что касается комментария к нескольким расширениям
find . -type f \( -name \*jpg -o -name \*png \) -delete
- ( .. ) Групповое выражение. Нужно сбежать из оболочки, поэтому \( .. \) в примере
- -o logical или
Таким образом, приведенный выше пример будет соответствовать любому файлу, который имеет либо jpg или png в конце его имени. Таким же образом можно добавить дополнительные расширения. Просто не забудьте запомнить -o между каждым оператором -name , если -o не указан find будет по умолчанию -a (и), который не будет работать, так как файл не может закончиться как в jpg ] и png в то же время.
Быстрое и чистое решение для командной строки будет
- . сообщает, чтобы начать поиск в текущей папке.
- -type f сообщает найти / искать только файлы.
- -iname делает регистр поиска нечувствительным.
- -delete сообщает find для удаления / удаления всех найденных файлов.
Сначала я рекомендую запустить команду без -delete , чтобы получить список файлов, которые будут удалены, когда -delete включен в команду. Таким образом, небольшая опечатка не удалит все, что вы не намеревались.
Для получения дополнительной информации о том, как использовать find и что она может видеть man find
Обратите внимание, что find не будет выдавать выход, если используется -delete .
Что касается комментария к нескольким расширениям
find . -type f \( -name \*jpg -o -name \*png \) -delete
- ( .. ) Групповое выражение. Нужно сбежать из оболочки, поэтому \( .. \) в примере
- -o logical или
Таким образом, приведенный выше пример будет соответствовать любому файлу, который имеет либо jpg или png в конце его имени. Таким же образом можно добавить дополнительные расширения. Просто не забудьте запомнить -o между каждым оператором -name , если -o не указан find будет по умолчанию -a (и), который не будет работать, так как файл не может закончиться как в jpg ] и png в то же время.