Удалить картинки из папки
Я хочу удалить все фотографии из папки и сохранить оставшиеся файлы. Я искал в Интернете, и я нашел множество решений, таких как:
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