Estou usando o comando find para listar arquivos com seus nomes contendo uma string:
find ~/ -type f -name "*inductive*"
gostaria de usar um canal para classificar a lista de arquivos resultante. Gostaria de poder ordenar por tamanho de arquivo, data de criação, data de acesso... Como posso fazer isso? Obrigado.
Responder1
Classificar a saída por hora de criação é impossível no Linux ( ctime
não é a data de criação do arquivo). stat
tem a capacidade de mostrar um arquivohora do nascimentousando as tags de formato %w
e %W
, mas elas sempre mostram -
e 0
, respectivamente, mesmo em sistemas de arquivos que armazenam hora de criação/hora de nascimento. Portanto, é praticamente inútil para esta finalidade no Linux.
As outras duas ordens de classificação são possíveis:
# Sort by size:
find ~/ -type f -name "*inductive* -exec ls -ltu {} \; | sort -k 5 -n
# Sort by access time:
find ~/ -type f -name "*inductive* -exec ls -ltu {} \; | sort -k 6 -M
Você pode adicionar o -r
sinalizador para sort
reverter a ordem de classificação. Consulte man sort
para obter mais informações.
Dependendo do tamanho da find
saída de ', pode levar algum tempo para sort
produzir uma saída classificada.