Isso não é possível depois do fato. Os sistemas de arquivos “normais” não mantêm um registro das versões anteriores de um arquivo. Tudo o que você pode saber é a última vez que o arquivo foi modificado (esse é o tempo de modificação do arquivo, mostrado por ls -l
e pela maioria dos gerenciadores de arquivos). Você não pode encontrar versões anteriores ou saber quando elas foram feitas, a menos que o editor tenha deixado um arquivo de backup para trás.
O proprietário do arquivo pode alterar o horário da modificação, por isso não é útil se você tiver preocupações de segurança e não confiar no autor. Os arquivos possuem outro timestamp, o ctime (inode change time), que não pode ser definido manualmente e é atualizado sempre que o arquivo é modificado ou movido ou seus metadados (incluindo a hora da modificação) são modificados. Portanto, o ctime de um arquivo mostra que a versão atual do arquivo foi criada no máximo (assumindo que você confia no administrador do sistema). Você pode ver o ctime com ls -lc
.
Se você quiser gravar a atividade em torno de um arquivo, use os mesmos métodos usados para gravar quando um arquivo é acessado : um inotify watch , LoggedFS , regras de auditoria , etc. Todos esses métodos registram apenas o que acontece uma vez eles foram configurados.
Se você quiser acompanhar o estado do arquivo em determinadas datas, faça backups.
Se você quiser salvar automaticamente todas as versões sucessivas de um arquivo, edite-o por meio de um sistema de arquivos CopyFS .
Se você quiser acompanhar as versões sucessivas do arquivo de maneira conveniente, use um sistema de controle de revisão . Este é um mecanismo cooperativo: as versões são gravadas quando a pessoa que está fazendo a modificação decide cometer uma nova versão.