Usando `du` podemos encontrar los directorios y archivos mas grande dentro de un directorio. el siguiente ejemplo muestra como listar los 10 archivos y carpetas mas grande dentro del directorio 'HOME'

du -a ~/ | sort -n -r | head -n 10

En el script de arriba, lo que estamos haciendo es listar todos los archivos y directorios que están en el directorio donde nos encontramos junto a su tamaño, luego los ordenamos numéricamente y de forma inversa y finalmente elegimos los últimos 10.

Con `find` podemos conseguir los 10 archivos mas grandes recursivamente dentro de un directorio.

find ~/ -type f -exec ls -ls {} \; | awk '{print $6"\t"$9}' | sort -k1 -n -r | head -n 10

Este script busca todos los archivos dentro de nuestro home, y los pasa por el comando ls -ls que los va a listar mostrando su tamaño. El resto de esta linea solo toma los campos seis y nueve pertenecientes a el tamaño en bloques y el nombre. Al igual que el script anterior el ultimo segmento de este script ordena numéricamente la salida y de forma inversa para luego tomar los primeros diez resultados.

Recientemente tuve un montón de problemas con una aplicación web la cual fue modificada bajo MS Windows y tenia el formato MS-DOS. Encontré un montón de errores en los logs de cron el cual corría estos scripts de perl, para no darle largas a la historia, me toco encontrar todos estos scripts y modificarlos, como no fui yo quien subió los scripts al servidor no tenia ni idea de en que subdirectorio podían estar ni cuantos eran. Aquí esta el script que use para conseguir los archivos:

grep -IUl --color '^M' -R ./*

Este script generara una lista de archivos que están formateados como MS-DOS, fácilmente se podría hacer un 'for/while loop' y pasarlos por alguna aplicación como dos2unix.