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

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

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

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

осторожно! Я рекомендую выполнить команду без -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 в то же время.

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

Перейдите в свою музыкальную папку в Nautilus, нажмите Ctrl+F и искать .jpg.

enter image description here& затем удалите его


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

enter image description here


Обновленный

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

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

enter image description here

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

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

который удалит все .Файлы JPG в папке "Музыка".

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

bash-4.3$ tree.├── 10.jpg└── subfolder    ├── 5.jpg    └── another_subfolder        └── 15.jpg2 directories, 3 filesbash-4.3$ shopt -s globstarbash-4.3$ rm ./**/*.jpgbash-4.3$ tree.└── subfolder    └── another_subfolder