Удалить картинки из папки

Я хочу удалить все фотографии из папки и сохранить оставшиеся файлы. Я искал в Интернете, и я нашел множество решений, таких как:

find . -type f -name "*.jpg" -delete

Все фотографии в формате JPEG, да, но главная проблема в том, что имена фотографий не заканчиваются расширением ".jpg".

Кто-нибудь может мне помочь?

3 ответа

Решение

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

for i in *; do 
    TESTRESULT=$(file --mime-type -b "$i"); 
    if [ "$TESTRESULT" == "image/jpeg" ]; then 
        echo "$i"; 
    fi;
done

Если это печатает нужные файлы, замените echo "$i" с rm "$i"

Хорошо, я нашел решение:

Попробуйте эту команду

find . -name "*.jpg" -delete

Я попробовал это на Xubuntu 14.04, и он работал нормально. Надеюсь, это поможет!

Я знаю, что это похоже на ваш пример, но приведенный вами пример не сработал для меня. Но это более простой вкладыш.

Вот скрипт для удаления всех изображений:

userX@ubuntu:~$ cat removeImages.sh 
#!/bin/bash
path=/home/userX/Downloads/*;
for file in $path
do
  fileInfo=`file "$file" |awk -F: '{print $2}'`
  if [[ $fileInfo =~ .*image.* ]]; then echo "Removing: " $file; rm $file; fi
done

Вы используете вторую часть файла file "$file" выход и искать image ключевое слово в нем, а затем удалить текущий файл в цикле.

Если вы также хотите удалить растровые изображения:

userX@ubuntu:~$ cat removeImages.sh 
#!/bin/bash
path=/home/userX/Downloads/*;
for file in $path
do
  fileInfo=`file "$file" |awk -F: '{print $2}'`
  if [[ $fileInfo =~ .*image.*]] || [[$fileInfo =~ .*bitmap.* ]]; 
  then echo "Removing: " $file; rm $file; fi
done
Другие вопросы по тегам