Mac: ¿Cómo encuentro recursivamente los archivos más grandes en un subdirectorio (ignorando todos los directorios)?

Mac: ¿Cómo encuentro recursivamente los archivos más grandes en un subdirectorio (ignorando todos los directorios)?

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 1y large file 2. No quiero que imprima nada sobre root, subdir1o subdir2, incluso si son más grandes que large file 1o 2. Para mí eso es sólo ruido.

¿Cómo hago eso en una Mac en la línea de comando?

Respuesta1

Dejemos lshacer 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 -lbúsquelos para poder ver sus tamaños. Pásalo a ordenar. -k 5,5dice ordenar por la quinta columna (la columna que tiene tamaño) y -rordena de forma descendente. head -10me da los 10 más grandes (no la lista completa).

información relacionada