Как удалить все файлы с определенным расширением из папки и всех ее подпапок?

Я хочу удалить все файлы.jpg из папки "Музыка", чтобы освободить место. Моя папка "Музыка" содержит подпапки, и я хотел бы знать, есть ли команда для удаления всех файлов.jpg из всех этих папок независимо от их уровня. Спасибо за вашу помощь!

4 ответа

Решение

Самый простой способ (если вы используете Ubuntu Desktop):

Перейдите в папку "Музыка" на Nautilus, нажмите Ctrl+F и найдите .jpg,

введите описание здесьи затем удали его


Вы также можете изменить местоположение и сделать свой поиск более конкретным.

введите описание здесь


обновленный

Будьте более конкретны после поиска .jpg Нажав на зеленую кнопку Select File type Picture и затем удалить jpg только из поиска . точка и затем reload как показано на рисунке ниже

Что он делает, он будет искать файл изображения, как .jpg .png .gif и все остальные файлы, которые находятся в Picture Format

введите описание здесь

Быстрое и чистое решение для командной строки будет

cd <dir>
find . -type f -iname \*.jpg -delete
  • . говорит начать поиск в текущей папке.
  • -type f говорит найти только для поиска файлов.
  • -iname делает поиск нечувствительным к регистру.
  • -delete говорит найти, чтобы удалить / удалить все найденные файлы.

ВНИМАНИЕ! Я рекомендую запустить команду без -delete сначала получить список файлов, которые будут удалены при -delete входит в команду. Таким образом, небольшая опечатка не удалит то, что вы не собирались.

Для получения дополнительной информации о том, как использовать find и что он может увидеть man find

Обратите внимание, что find не будет производить вывод, когда -delete используется.

По поводу комментария на несколько расширений

find . -type f \( -name \*jpg -o -name \*png \) -delete

  • ( .. ) Групповое выражение. Необходимо убежать из оболочки, следовательно \( .. \) в примере
  • -o логично или

Таким образом, приведенный выше пример будет соответствовать любому файлу, который имеет jpg или же png в конце его названия. Другие расширения могут быть добавлены таким же образом. Просто не забудьте запомнить -o между каждым -name заявление, если -o не указано find по умолчанию будет -a (и) который не будет работать, так как файл не может заканчиваться в обоих jpg а также png в то же время.

Это должно сделать это

sudo rm -rf -d ~/Music/*.JPG

который удалит все файлы.JPG в папке Music.

В Bash shopt -s globstar здесь может быть полезно для рекурсивного сглаживания:

bash-4.3$ tree
.
├── 10.jpg
└── subfolder
    ├── 5.jpg
    └── another_subfolder
        └── 15.jpg

2 directories, 3 files
bash-4.3$ shopt -s globstar
bash-4.3$ rm ./**/*.jpg
bash-4.3$ tree
.
└── subfolder
    └── another_subfolder
Другие вопросы по тегам