Eu tenho um diretório chamado root
. Possui subdiretórios profundamente aninhados. Nesses subdiretórios, há vários arquivos. Quero encontrar os maiores arquivos em root
.
EUnãodeseja encontrar diretórios. Não me importo com o tamanho do diretório maior, só quero encontrar os arquivos maiores.
root
|
- subdir1
|
- small file 1
- large file 1
- small file 2
... lots more files
- subdir2
|
- small file 3
- large file 2
Quero imprimir large file 1
e large file 2
. Não quero imprimir nada sobre root
, subdir1
, ou subdir2
, mesmo que sejam maiores que large file 1
ou 2
. Isso é apenas barulho para mim.
Como faço isso em um Mac na linha de comando?
Responder1
Vamos ls
fazer a classificação->
find . -type f -exec ls -S {} + | head -n10
Responder2
Isto é o que eu descobri:
find . -type f -exec ls -l {} + | sort -rk 5,5 | head -10
Encontre todos os arquivos (isso ignora os diretórios) e depois ls -l
eles para que eu possa ver seus tamanhos. Passe isso para o tipo. -k 5,5
diz para classificar pela 5ª coluna (a coluna que tem tamanho) e -r
classifica em ordem decrescente. head -10
me dá os 10 maiores (não a lista completa).