Aqui está uma maneira simples. Abaixo está o conteúdo de um script chamado script.sh
in ~/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
Conceda permissão para executar ( chmod 0750 ~/bin/script.sh
). Em seguida, localize os arquivos e passe os resultados, um de cada vez (usando \;
, não +
) para o script.
find ~ -iname *.jpg 2>/dev/null -exec ~/bin/script.sh {} \;
Outra ferramenta é identify
do ImageMagick. Esta ferramenta descreve as características da imagem e lê os dados da imagem, incluindo o EXIF. Seria muito mais lento que file
, mas há muito mais informações na imagem do que as informações fornecidas por file
. Pode ajudar quando file
não descrever os dados a serem encontrados. Seu uso pode ser o seguinte.
identify -verbose "$file" | grep "RaspberryPi"
Podemos testar o código de retorno de grep
(depois de usar file
ou identify
na instrução if
, acima) exibindo seu código de retorno. De man grep
:
Normally the exit status is 0 if a line is selected, 1 if no lines were selected, and 2 if an error occurred.
Combine essas informações com o conhecimento de que a variável $?
contém o código / valor de retorno ou o código / valor de saída do último comando executado.
file image.jpg | grep "RaspberryPi"
echo $?
As linhas acima produziriam um valor igual a zero - correspondência encontrada - para file
resultados que contêm a string "RaspberryPi".
file image.jpg | grep "Rumpelstiltskin"
echo $?
As linhas acima produziriam um valor de um - sem correspondência - assumindo que file
não encontrou correspondência para a string, "Rumpelstiltskin".