Não há como saber com certeza se um arquivo foi renomeado.
Quando um arquivo é renomeado, seu número inode não é alterado. (Isso pode não ser verdade para sistemas de arquivos "exóticos", como sistemas de arquivos de rede, mas é verdadeiro para todos os sistemas de arquivos Unix "nativos".) No entanto, o inverso não é verdadeiro: se um arquivo for excluído, um novo arquivo pode ser criado com o arquivo. mesmo número de inode. Assim, mesmo que você veja que um arquivo tem o mesmo número de inode que outro arquivo tinha antes, isso não implica necessariamente que o arquivo foi renomeado.
O número de inode identifica exclusivamente o arquivo enquanto existir . Isso o torna adequado para detectar links físicos, mas não para detectar renomeações.
Os descritores de arquivos estão associados a um processo específico e são inúteis aqui.
Você pode considerar uma heurística de que, se um arquivo tiver o mesmo tamanho, tempo de modificação e número de inode de antes, mas um nome diferente, significa que ele foi renomeado. Essa heurística é semelhante ao que muitas ferramentas de sincronização fazem para detectar arquivos inalterados: mesmo nome, tamanho e tempo de modificação.
Todas as ferramentas que posso imaginar para renomear o arquivo de trilha são baseadas no conteúdo do arquivo. Unison detecta arquivos renomeados se pelo menos um dos endpoints for remoto . Alguns sistemas modernos de controle de versão, como o git, também detectam arquivos renomeados.
Suspeito que o que você deseja fazer com a sincronização de arquivos, entre rsync , Unison e controle de versão, ele já existe.