Como encontro um arquivo recente por data?

4

Se eu quiser encontrar um arquivo por nome, faço o seguinte:

find -name app

Se eu quiser encontrar um arquivo por tipo, faço o seguinte:

find -name app -type d

No entanto, como o aplicativo é um nome tão genérico, muitos resultados são exibidos. Eu gostaria de encontrar um diretório chamado app, que foi criado hoje. Existe uma bandeira ou comando para conseguir isso?

    
por JohnMerlino 05.10.2014 / 02:24

4 respostas

4

Para pesquisar todo o sistema de arquivos ( / ) para

  • diretórios ( -type d ),
  • chamado app ( -name app ),
  • que foram modificados mais recentemente do que um dia (ou seja, 24 horas) atrás ( -mtime 0 ),

... Use:

find / -name app -type d -mtime 0

Fonte: man find .

Em particular, veja a explicação do sinal -mtime e do exemplo " find $HOME -mtime 0 ":

% bl0ck_qu0te%

(Assim, o tempo em dias desde que o arquivo foi modificado é arredondado para o inteiro mais próximo para fins de correspondência por -mtime .)

A criação é considerada uma forma de modificação para o propósito de registros de data e hora do arquivo, portanto, isso funcionará mesmo se o conteúdo do arquivo não tiver sido alterado depois de criado. Ele também corresponderá às pastas com registros de data e hora de modificação no último dia que foram criados anteriormente, mas você provavelmente não possui muitas dessas pastas cujo nome exato é app .

Quando um arquivo foi criado , normalmente não é armazenado no sistema de arquivos. Mas a hora em que seus metadados foram alterados pela última vez (por exemplo, nome / local, propriedade, permissões) é armazenada. Se você preferir ir até o momento em que o conteúdo do arquivo foi modificado, use -ctime no lugar de -mtime :

find / -name app -type d -ctime 0

Para ambos, -mtime e -ctime , a criação original do arquivo é qualificada como alteração de modificação / status.

    
por Eliah Kagan 05.10.2014 / 02:51
2

Opções de localização de comandos:

Se você precisar de um período específico há muitos dias.

Exemplo de arquivos de localização modificados entre 1º de fevereiro de 2013 e 1º de fevereiro de 2014, no diretório / data / docs:

touch --date "2013-02-01" /tmp/start
touch --date "2014-02-01" /tmp/end
find /data/docs -type f -newer /tmp/start -not -newer /tmp/end

Você pode salvar a lista em um arquivo de texto chamado findlist.txt da seguinte forma:

find /data/docs -type f -newer /tmp/start -not -newer /tmp/end > findlist.txt
    
por kyodake 05.10.2014 / 02:41
0

Obtenha todos os arquivos modificados entre a data: 2018-02-28 to 2018-03-28

find . -type f -newermt 2018-02-28 -not -newermt 2018-03-28
    
por Benny 26.03.2018 / 15:50
-1

Você pode usar o tempo de modificação ,

find -name app -type d -mtime -1

(modificado menos que 1 x 24 horas atrás) ou

find -name app -type d -newermt yesterday
    
por steeldriver 05.10.2014 / 02:45