ls(1)
/sort
:
-S sort by file size
Como posso exibir os arquivos em um diretório unix classificados por seu tamanho legível, indo do maior para o menor?
Eu tentei
du -h | sort -V -k 1
mas parece que não funciona.
$ ls -lhS
-l use a long listing format
-h with -l, print sizes in human readable format (e.g., 1K 234M 2G)
-S sort by file size
Se você tiver a versão sort
apropriada, basta usar:
du -h | sort -rh
meu é
$ sort --version
sort (GNU coreutils) 8.12
du -ha | sort -h
du
: estimar o uso do disco de arquivos.
-h : for human
-a : all files
sort
: classificar linhas de texto.
-h : for human
man du; man sort
para mais. Isso funciona para mim no ubuntu v15.
ls -S
não era uma opção no sistema operacional para mim. O seguinte funcionou:
ls -l | sort -k 5nr
Eles "chave" era para especificar a coluna para classificar (obtê-lo, a "chave"). Acima estou especificando -k 5nr
meaning sort na quinta coluna que é size (5) avaliada como um número (n) em ordem decrescente (n)
Referência classifique a documentação para mais informações
Eu tenho isso para trabalhar para mim:
ls -l | sort -g -k 5 -r
Qual (acabei de descobrir) é o mesmo que:
ls -lS
Ao contrário de ls -S
, isso lida corretamente com arquivos esparsos:
ls -lsh | sort -n | sed 's/^[0-9 ]* //'