Deseja classificar arquivos por data de atualização, incluindo subdiretórios

16

Eu quero classificar apenas arquivos por datas de atualização, incluindo subdiretórios.

Eu descobri ls -lrtR | grep ^- . mas não parece ordenar por datas de atualização.

E preciso salvar essa lista em um arquivo. É possível?

Apr 01 2010  InsideDoosanServiceImpl.class  // in A directory
Apr 08 2010  MainController.class  // in B directory
Apr 07 2010  RecommendController.class  // in B directory
Apr 01 2010  MainDao.class  // in B directory

Quero dizer que toda a lista não é ordenada por data, mas primeiro ordenada por pasta e ordenada por data.

Eu quero uma lista ordenada primeiro por data, incluindo todos os subdiretórios.

    
por Deckard 18.01.2012 / 06:38

2 respostas

12

Não sei exatamente o que você quer dizer com update dates , mas você está usando a opção -r que, de acordo com o homem, faz isso -

-r Reverse the order of the sort to get reverse lexicographical order or the oldest entries first (or largest files last, if combined with sort by size

Acho que isso deve ser bom o suficiente para você, se precisar de arquivos classificados por hora.

ls -lRt

Se você não precisa de todas as outras coisas listadas por ls , então você pode usar -

ls -1Rt

Para capturar o resultado em um arquivo, você pode usar o operador de redirecionamento > e fornecer um nome de arquivo. Então você pode fazer algo assim -

ls -lRt > sortedfile.list

Atualização:

find . -type f -exec ls -lt {} +
    
por 18.01.2012 / 07:10
16

Com ls, -R irá recuperar diretórios e -t irá ordenar por modificação. No entanto, ele percorre os diretórios recursivamente e aplica -t a cada diretório. Não acumula todos os arquivos de todos os diretórios e, em seguida, classifica. (Tanto quanto eu entendo, o último é o que você quer)

Com o gnu find (1) você pode especificar o formato de saída para incluir o número de segundos desde epoch e o nome do arquivo, então você pode canalizar isto para ordenar (1).

find . -type f -printf "%T@ %f\n" | sort -n > out.txt
    
por 18.01.2012 / 08:41

Tags