Como obtenho arquivos encontrados pela linha de comando 'find' ordenada pela data de modificação no OS X?

10

Usando o Terminal do Mac OS X, como escrevo um comando find que ordena resultados por data de modificação (mais recentes primeiro)?

Já existem questões semelhantes, mas elas se referem ao GNU find e POSIX, mas não sei se o Mac OS X é GNU ou POSIX ou qualquer outra coisa.

    
por zadam 18.06.2011 / 10:30

1 resposta

11

O OS X é totalmente compatível com POSIX .

Algo assim deveria fazer:

find . -type f -name "*.txt" -print0 | xargs -0 ls -tl

Algumas notas:

  • A opção -t em ls classificará por mtime .
  • xargs é usado para passar os nomes dos arquivos como um argumento para ls . Observe que você precisa usar -print0 em find e -0 em xargs se tiver arquivos com espaços em seus nomes. Além disso, a quantidade máxima de argumentos é limitada pela variável ARG_MAX . Para descobrir quantos são, digite getconf ARG_MAX .
  • Você pode fornecer -r para reverter a ordem de classificação (→ arquivos mais antigos primeiro)
  • As outras opções find e ls são - como sempre - descritas nos manuais ( man find ou man ls ).
por 18.06.2011 / 10:50