Existem várias ferramentas que podem extrair dados EXIF ou até mesmo manipular arquivos de imagem com base em seus dados EXIF.
Com exiftool , você pode renomear arquivos com base em propriedades exif. Em particular, você pode facilmente distribuir arquivos em subdiretórios nomeados após uma propriedade exif específica. Você pode revisar os resultados e excluir os diretórios que contêm arquivos que você não está interessado para o seu lazer.
exiftool '-Directory<${Model}/%d' -r .
O Exiftool torna isso fácil, mas, para ilustração, aqui está um trecho de shell que classifica os arquivos jpeg em subdiretórios baseados em uma propriedade EXIF usando exif . O valor da propriedade não deve conter /
caracteres. Você pode descobrir o número da opção -t
executando exif -l
.
for f in *.jpg; do
v=$(exif -m -t 0x0110 -- "$f" 2>/dev/null)
if [ -n "$v" ]; then
mkdir -p -- "$v"
mv -- "$f" "$v"
fi
done
Com Exiv2 , substitua a linha v=…
por v=$(exiv2 -g Exif.Image.Model -Pv -- "$f")
.
Se os seus arquivos já estiverem organizados em uma árvore de diretórios, chame find
para percorrer a árvore de diretórios recursivamente. Suponha que todas as suas imagens estejam em um diretório chamado unknown
. O snippet abaixo cria um diretório para cada modelo de imagem e copia os arquivos, espelhando a hierarquia de diretórios original.
find unknown -name '*.jpg' -exec sh -c '
v=$(exif -m -t 0x0110 -- "$f" 2>/dev/null)
[ -n "$v" ] || exit
d=${0#*/}; d=${d%/*}
mkdir -p -- "$v/$d"
mv "$0" "$v/$d"
' {} \;