Tengo un directorio llamado root
. Tiene subdirectorios profundamente anidados. En estos subdirectorios, hay muchos archivos. Quiero encontrar los archivos más grandes en root
.
InoNo quiero buscar directorios. No me importa el tamaño del directorio más grande, solo quiero encontrar los archivos más grandes.
root
|
- subdir1
|
- small file 1
- large file 1
- small file 2
... lots more files
- subdir2
|
- small file 3
- large file 2
Quiero imprimir large file 1
y large file 2
. No quiero que imprima nada sobre root
, subdir1
o subdir2
, incluso si son más grandes que large file 1
o 2
. Para mí eso es sólo ruido.
¿Cómo hago eso en una Mac en la línea de comando?
Respuesta1
Dejemos ls
hacer la clasificación->
find . -type f -exec ls -S {} + | head -n10
Respuesta2
Esto es lo que se me ocurrió:
find . -type f -exec ls -l {} + | sort -rk 5,5 | head -10
Busque todos los archivos (esto ignora los directorios) y luego ls -l
búsquelos para poder ver sus tamaños. Pásalo a ordenar. -k 5,5
dice ordenar por la quinta columna (la columna que tiene tamaño) y -r
ordena de forma descendente. head -10
me da los 10 más grandes (no la lista completa).