Trovare file di grandi dimensione in Linux

Trovare file di grandi dimensione in Linux

Il comando find in Linux, è molto versatile, e ci permette di eseguire ricerche di praticamente qualsiasi tipo.

Ieri avevo la necessità di trovare nella mia home file più grandi di una cerca dimensione.

Con find ci sono riuscito abbastanza facilmente.

Ecco un esempio:

$ find /home -size +1G
/home/matte/.netbeans/8.1/var/log/heapdump.hprof.old
/home/matte/android-sdk-linux/system-images/android-N/default/x86_64/system.img
/home/matte/android-sdk-linux/system-images/android-N/default/x86/system.img
/home/matte/android-sdk-linux/system-images/android-22/default/x86_64/system.img
/home/matte/android-sdk-linux/system-images/android-24/default/x86_64/system.img
/home/matte/android-sdk-linux/system-images/android-24/default/x86/system.img
/home/matte/android-sdk-linux/system-images/android-21/default/x86_64/system.img
/home/matte/android-sdk-linux/system-images/android-23/android-tv/armeabi-v7a/system.img
/home/matte/android-sdk-linux/system-images/android-23/android-tv/x86/userdata.img
/home/matte/android-sdk-linux/system-images/android-23/android-tv/x86/system.img
/home/matte/android-sdk-linux/system-images/android-23/default/armeabi-v7a/system.img
/home/matte/android-sdk-linux/system-images/android-23/default/x86_64/system.img
/home/matte/android-sdk-linux/system-images/android-23/default/x86/system.img
/home/matte/android-sdk-linux/system-images/android-23/google_apis/x86_64/userdata.img
/home/matte/android-sdk-linux/system-images/android-23/google_apis/x86_64/system.img

Qui gli ho detto di cercare i file nella home con misure oltre 1GB.

Posso anche pensare di scartare file con una certa estensione:

$ find /home -size +1G -not -name *.img
/home/matte/.netbeans/8.1/var/log/heapdump.hprof.old

Così ho scartato tutti i file .IMG che in pratica erano dell'SDK di Android.

Ultimo tip: come ordinare per dimensione:

$ find /home -size +1G -exec ls -sh {} ; | sort -n -r | head -10
2,1G /home/matte/android-sdk-linux/system-images/android-23/google_apis/x86_64/userdata.img
2,1G /home/matte/android-sdk-linux/system-images/android-23/android-tv/x86/userdata.img
1,8G /home/matte/android-sdk-linux/system-images/android-N/default/x86_64/system.img
1,8G /home/matte/android-sdk-linux/system-images/android-24/default/x86_64/system.img
1,6G /home/matte/android-sdk-linux/system-images/android-N/default/x86/system.img
1,6G /home/matte/android-sdk-linux/system-images/android-24/default/x86/system.img
1,6G /home/matte/android-sdk-linux/system-images/android-23/google_apis/x86_64/system.img
1,6G /home/matte/android-sdk-linux/system-images/android-23/default/armeabi-v7a/system.img
1,6G /home/matte/android-sdk-linux/system-images/android-23/android-tv/armeabi-v7a/system.img
1,3G /home/matte/android-sdk-linux/system-images/android-23/default/x86/system.img

In pratica, usiamo exec per eseguire un comando dopo aver trovato i file.

Il comando che eseguiamo è ls, e poi facciamo il sort.

Infine usiamo head per prendere solo 10 risultati.

Enjoy!