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 archivos legibles en la salida. El archivo más grande aparece en último lugar. El argumento para tail es el número de resultados que se ven (aquí los 10 más grandes).
Hay dos técnicas utilizadas para manejar los espacios en los nombres de los archivos. El find -print0 | xargs -0
utiliza delimitadores nulos en lugar de espacios, y el segundo xargs -I{}
utiliza nuevas líneas en lugar de espacios para terminar 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