Вот простой способ. Ниже приводится содержимое сценария с именем script.sh
в ~ / bin /
.
#!/usr/bin/env bash
if (file "$1" | grep "RaspberryPi"); then
echo "rm $1" # <- safety first: just echo, no delete
# rm "$1" # <- uncomment to delete, leave the quotes
fi
Дайте ему разрешение на выполнение ( chmod 0750 ~ / bin / script.sh
). Затем найдите файлы и передайте результаты по одному (используя \;
, а не +
) в сценарий.
find ~ -iname *.jpg 2>/dev/null -exec ~/bin/script.sh {} \;
Другой инструмент - идентифицировать
из ImageMagick. Этот инструмент описывает характеристики изображения и считывает данные изображения, включая EXIF. Это будет намного медленнее, чем файл
, но в изображении гораздо больше информации, чем в файле
. Это может помочь, когда файл
не описывает данные, которые нужно найти. Его использование может быть следующим.
identify -verbose "$file" | grep "RaspberryPi"
Мы можем проверить код возврата grep
(после использования файла
или идентификации
в if
инструкции выше), отобразив его код возврата. Из man grep
:
Обычно статус выхода равен 0, если строка выбрана, 1, если строки не были выбраны, и 2, если произошла ошибка.
Объедините эту информацию с тем, что переменная $?
содержит код / значение возврата или код / значение выхода самой последней выполненной команды.
file image.jpg | grep "RaspberryPi"
echo $?
В приведенных выше строках будет получено значение нулевое совпадение - для файла
результатов, содержащих строку «RaspberryPi».
file image.jpg | grep "Rumpelstiltskin"
echo $?
В приведенных выше строках будет получено значение один - нет совпадения - при условии, что файл
не находит совпадения для строки «Rumpelstiltskin».