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.
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}'
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
Para listar todos os arquivos de um diretório que foram modificados nas últimas 24 horas, use:
find . -type f -mtime -1
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
| 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 |
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.