Apenas uma ideia. Mantenha 2 diretórios - um com os arquivos tocados pelo script (diretório de trabalho) e o segundo com os arquivos sincronizados (diretório espelho). Coloque na primeira linha do comando de sincronização de scripts:
rsync -xrlptgoEvv /home/user/work/ /home/user/mirror/
e no final do comando de script para detectar a diferença entre os diretórios work
e mirror
com o redirecionamento da saída para um arquivo de texto simples:
diff -rq /home/user/work/ /home/user/mirror/ > /home/user/list-of-files.txt
Você também pode filtrar a saída do comando diff
com sed
, awk
etc. para obter o formato necessário dos seus dados. Considere também a opção --delete
com rsync
para remover dos arquivos de diretório mirror
que foram excluídos do diretório work
desde a última sincronização.
UPDATE. A melhor maneira possível é criar uma lista de arquivos em cima do script:
ls -la /home/user/work/ > /home/user/list-of-files.txt
e na parte inferior do script, inclua uma nova lista de arquivos na lista antiga, classifique-a e filtre linhas exclusivas que representarão apenas novos arquivos:
ls -la /home/user/work/ >> /home/user/list-of-files.txt
cat /home/user/list-of-files.txt | sort | uniq -u > /home/user/list-of-new-files.txt