Skip to content

Instantly share code, notes, and snippets.

@viniciusgonmelo
Last active June 13, 2023 02:35
Show Gist options
  • Save viniciusgonmelo/d92c98c4f063d949f93001bad7e23b74 to your computer and use it in GitHub Desktop.
Save viniciusgonmelo/d92c98c4f063d949f93001bad7e23b74 to your computer and use it in GitHub Desktop.
Usa o exiftool para extrair as datas dos metadados de arquivos.
#!/usr/bin/env bash
# Script: exif-datetime.bash
# Descrição: Usa o exiftool para extrair as datas dos metadados de arquivos.
# Exemplo de uso: ./exif-datetime arquivo.jpg
# Função para extrair metadados
get_metadata() {
exiftool -s -s -s -"${1}" "${FILE}"
}
# Checa o número de argumentos
if [ $# -ne 1 ]; then
echo "Uso: ${0} <arquivo>"
exit 1
fi
FILE=${1}
# Checa se o exiftool está instalado
if ! command -v exiftool >/dev/null; then
echo "Erro: ${0}: O comando 'exiftool' não foi encontrado. Por favor, instale-o."
exit 1
fi
# Checa se o arquivo existe
if [ ! -f "${FILE}" ]; then
echo "Erro: ${0}: O arquivo '${FILE}' não foi encontrado."
exit 1
fi
# Verifica se o ExifTool pode processar o arquivo
if ! exiftool -ver "${FILE}" >/dev/null 2>&1; then
echo "Erro: ${0}: O ExifTool não pode processar o arquivo fornecido."
exit 1
fi
# Tenta extrair as datas dos metadados
DATETIMEORIGINAL=$(get_metadata "DateTimeOriginal")
CREATEDATE=$(get_metadata "CreateDate")
MODIFYDATE=$(get_metadata "ModifyDate")
# Inicializa uma variável para verificar se alguma data foi encontrada
data_found=0
# Se DateTimeOriginal estiver disponível, imprima-o
if [ -n "${DATETIMEORIGINAL}" ]; then
echo "Data e hora da foto: ${DATETIMEORIGINAL}"
data_found=1
fi
# Se CreateDate estiver disponível, imprima-o
if [ -n "${CREATEDATE}" ]; then
echo "Data e hora da criação: ${CREATEDATE}"
data_found=1
fi
# Se ModifyDate estiver disponível, imprima-o
if [ -n "${MODIFYDATE}" ]; then
echo "Data e hora da última modificação: ${MODIFYDATE}"
data_found=1
fi
# Se nenhuma das datas estiver disponível, informe o usuário
if [ ${data_found} -eq 0 ]; then
echo "Erro: ${0}: Não foi possível encontrar informações de data nos metadados do arquivo."
exit 1
fi
exit 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment