Você pode usar a saída de
find . -mindepth 1 -maxdepth 1 -type f -printf '%C@ %T@ ' -ls
que é muito mais rápido do que chamar stat
(especialmente várias vezes) por arquivo. A combinação de -printf
e -ls
tem um tratamento melhor de nomes de arquivos estranhos. Se você pode ter certeza de que esses não ocorrerão, então você pode usar
-printf '%i %C@ %T@ %P'
em vez disso.
O inode (como mencionado nos comentários) identifica o objeto. O ctime e o mtime informam se os dados ou metadados do arquivo foram gravados (não informam se realmente foram alterados). Você deve gravar esses dados em matrizes em um
find ... | while IFS= read ctime mtime inode dummy1 ... dummy9 rest; do ...
loop.