terça-feira, 1 de julho de 2014

Como encontrar arquivos modificados ou acessados em determinada data

Já se viu em situação em que editou um arquivo ou armazenou alguma informação e não lembra de nenhum jeito o nome do arquivo ou onde ele foi gravado, mas lembra que foi "ontem" ou "nessa semana"?



O comando find possui forma bastante eficiente de localizar os arquivos modificados, acessados ou que tiveram permissões alteradas a partir de certa data.

O segredo é usar testes do find com os parâmetros -newerXY and ! -newerXY.

Vamos aos exemplos.

Para localizar todos os arquivos modificados em 29/06/2014:

find . -type f -newermt 2014-06-29 ! -newermt 2014-06-30

Nesse caso o 'm' corresponde a "modification  time of the file reference" e o 't' corresponde a "reference is interpreted directly as a time".

O ponto '.' refere-se à pasta atual. O comando procurará arquivos na pasta atual e subpastas.

Para encontrar todos os arquivos acessados em 29/09/2008:

find . -type f -newerat 2008-09-29 ! -newerat 2008-09-30

Aqui o 'a' significa "the access time of the file reference".

Para encontrar os arquivos que tiveram permissões alteradas na mesma data acima:

find . -type f -newerct 2008-09-29 ! -newerct 2008-09-30

Aqui o 'c' corresponde a "inode status change time of reference".

Para maiores informações, consulte o manual do find (man find).