ragfica.pages.dev

Como comparar datas de modificação de arquivos com script Bash?

Comparar datas de modificação de arquivos manualmente é uma tarefa trabalhosa e propensa a erros. Um script Bash automatiza esse processo, permitindo que você identifique rapidamente quais arquivos foram modificados mais recentemente ou há quanto tempo uma alteração ocorreu. Este método é eficiente, preciso e pode ser facilmente adaptado para diferentes necessidades de análise de arquivos.

Pré-requisitos

1. Listar arquivos com data de modificação

O comando ls -l exibe uma lista detalhada dos arquivos, incluindo a data e hora de sua última modificação. Para filtrar apenas o nome do arquivo e a data, podemos usar:

ls -lt --time-style=long-iso | awk '{print $6" "$7" "$8" "$9}'

2. Comparar datas entre dois arquivos

Para comparar qual dos dois arquivos foi modificado mais recentemente, use o comando test com a opção -nt (newer than):

if [ arquivo1.txt -nt arquivo2.txt ]; then
    echo "arquivo1.txt foi modificado mais recentemente"
else
    echo "arquivo2.txt foi modificado mais recentemente ou são iguais"
fi

3. Encontrar arquivos modificados nas últimas 24 horas

Para listar todos os arquivos de um diretório que foram modificados nas últimas 24 horas, use:

find . -type f -mtime -1

4. Comparar datas com timestamp

Para comparar datas de forma mais precisa usando timestamps, você pode extrair a data de modificação com stat e converter para epoch:

arquivo1=$(stat -c %Y arquivo1.txt)
arquivo2=$(stat -c %Y arquivo2.txt)

if [ $arquivo1 -gt $arquivo2 ]; then
    echo "arquivo1.txt é mais recente"
fi

Exemplo Prático

Arquivo Data de Modificação Timestamp (epoch)
relatorio.txt 2024-03-15 10:30:45 1710510645
dados.csv 2024-03-14 14:20:10 1710442810
backup.zip 2024-03-13 08:15:00 1710323700

Conclusão

Com este script Bash, você automatiza a comparação de datas de modificação de arquivos em segundos, eliminando a necessidade de verificação manual e reduzindo significativamente o risco de erros. A flexibilidade dos comandos permite adaptar a solução para monitorar diretórios inteiros, identificar arquivos desatualizados ou sincronizar backups de forma eficiente.