find /mydir -type f -exec stat -c '%y %N' {} \; | sort -n
Existe um comando shell para encontrar os mais novos arquivos criados recursivamente a partir de um diretório raiz?
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
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
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@ %pfind . -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
Tags linux shell filesystems ubuntu