O script a seguir exibirá uma lista de "novos arquivos" e "arquivos antigos" em um diretório. Por "novos arquivos" entende-se arquivos que foram modificados após a última execução do script e por "arquivos antigos" que não foram modificados desde a última execução do script.
O script grava a saída de date
em um "arquivo de timestamp" e usa esse arquivo na próxima execução para determinar quais arquivos foram alterados. na primeira execução, nenhuma saída será produzida.
O script deve ser executado manualmente e, como está escrito, só lhe dará a oportunidade de detectar quais arquivos foram modificados em um diretório específico.
#!/bin/sh
topdir=$HOME # change this to point to the top dir where your files are
stamp="$topdir/timestamp"
if [ -f "$stamp" ]; then
echo 'New files:'
find "$topdir" -type f ! -name timestamp -newer "$stamp"
echo 'Old files:'
find "$topdir" -type f ! -name timestamp ! -newer "$stamp"
fi
date >"$stamp"
Isso pode ser modificado para
- avisa o usuário para excluir os arquivos antigos,
- detecta apenas arquivos que correspondem a um determinado padrão (usando
-name 'pattern'
, por exemplo, -name 'A156.1.[abxyz]'
),
- observe o tempo de alteração do inode ("ctime") em vez do tempo de modificação (usando
-cnewer
em vez de -newer
se o seu find
oferecer suporte),
- etc.