Que tal usar um controle de versão, como git
em um loop? Isso monitora todas as alterações e pode gerar dados passíveis de análise com git status --porcelain
, onde você pode ver se é uma modificação de dados ou um novo arquivo e não mostra se o conteúdo não mudou realmente. Exemplo:
$ git init
$ echo "aa" > file1
$ git add file1
$ git commit -m "initial"
$ echo "bb" > file2
$ echo "aa" > file1
$ git status --porcelain
saídas:
?? file2
A desvantagem é que inotify
está intimamente ligado ao sistema de arquivos real, enquanto o git é muito mais alto (e, portanto, tem sobrecarga).