Comando shell para localizar os arquivos criados mais recentemente recursivamente a partir de um diretório raiz?

3

Existe um comando shell para encontrar os mais novos arquivos criados recursivamente a partir de um diretório raiz?

    
por Phu Son 03.09.2009 / 22:02

4 respostas

10
find /mydir -type f -exec stat -c '%y %N' {} \; | sort -n
    
por 03.09.2009 / 22:04
6

Este método usa apenas find (e sort ):

find /somedir -type f -printf "%T+ %p\n" | sort

Você pode restringi-lo aos três dias mais recentes, por exemplo, assim:

find . -type f -mtime -3 -printf "%T+ %p\n" | sort

Ou as últimas 42,5 horas:

find . -type f -mmin -2550 -printf "%T+ %p\n" | sort

que é o mesmo que:

find . -type f -mmin -$((42 * 60 + 30)) -printf "%T+ %p\n" | sort
    
por 04.09.2009 / 00:28
2

Para evitar a marcação de um processo por arquivo, se você estiver em uma máquina com versões GNU de find e xargs, considere algo como isto:

find /dir -type f -print0 | xargs -0 stat -c '%Y %N' | sort -n
    
por 04.09.2009 / 00:26
0

Isso manipula espaços corretamente e executa um comando ( ls neste caso) em uma base por arquivo. Altere (ou exclua) -n1 para executar o comando em vários arquivos simultaneamente.

find . -type f -printf "%T@ %p
find . -type f -printf "%T@ %p%pre%" | sort -z -nr | cut -z -d' ' -f2- |xargs -0 -n1 ls
" | sort -z -nr | cut -z -d' ' -f2- |xargs -0 -n1 ls
    
por 27.01.2017 / 17:17