Para encontrar los 10 archivos más grandes (linux / bash):
find . -type f -print0 | xargs -0 du | sort -n | tail -10 | cut -f2 | xargs -I{} du -sh {}
Para encontrar los 10 directorios más grandes:
find . -type d -print0 | xargs -0 du | sort -n | tail -10 | cut -f2 | xargs -I{} du -sh {}
La única diferencia es -type {d:f}
.
Maneja archivos con espacios en los nombres y produce tamaños de archivo legibles por humanos en la salida. El archivo más grande aparece en último lugar. El argumento para seguir es el número de resultados que ve (aquí los 10 más grandes).
Hay dos técnicas utilizadas para manejar espacios en los nombres de archivo. Los find -print0 | xargs -0
usos null delimitadores en lugar de espacios, y la segunda xargs -I{}
utiliza saltos de línea en lugar de espacios para poner fin a los elementos de entrada.
ejemplo:
$ find . -type f -print0 | xargs -0 du | sort -n | tail -10 | cut -f2 | xargs -I{} du -sh {}
76M ./snapshots/projects/weekly.1/onthisday/onthisday.tar.gz
76M ./snapshots/projects/weekly.2/onthisday/onthisday.tar.gz
76M ./snapshots/projects/weekly.3/onthisday/onthisday.tar.gz
76M ./tmp/projects/onthisday/onthisday.tar.gz
114M ./Dropbox/snapshots/weekly.tgz
114M ./Dropbox/snapshots/daily.tgz
114M ./Dropbox/snapshots/monthly.tgz
117M ./Calibre Library/Robert Martin/cc.mobi
159M ./.local/share/Trash/files/funky chicken.mpg
346M ./Downloads/The Walking Dead S02E02 ... (dutch subs nl).avi