Trovare i file o le cartelle di grandi dimensioni in Linux con bash

Pubblicato da Nicola Rainiero il 18-01-2017 (aggiornato il 27-01-2017)

Da una discussione su Super User ho scoperto un fantastico strumento per localizzare i file e le cartelle più capienti nel mio computer, semplicemente digitando una linea di comando su un terminale bash. Ho solo aggiunto del codice per creare un file di testo pulito da tutti i ripetitivi messaggi di "Permesso negato". Nell'articolo ho anche inserito una lista dei più famosi analizzatori per Linux.

Qualche tempo fa non riuscivo a capire perché in una mia partizione si stava velocemente riducendo lo spazio libero. Conoscevo diversi programmi per analizzare l'uso del disco con o senza interfaccia grafica, ma volevo qualcosa di nuovo, immediato e semplice. Purtroppo le prime soluzioni trovate su internet erano proprio una lista di analizzatori del disco fisso.

Lista di analizzatori

Dalla pagina del tool NCurses Disk Usage, riporto la seguente lista di questi software:
Ncdu - Done scanning of my home directory

  • NCurses Disk Usage - Ncdu è un analizzatore dell'uso del disco. È progettato per funzionare su un server remoto dove non si può accedere ad una interfaccia grafica, ma è uno strumento utile anche per i sistemi desktop. Ncdu si propone di essere veloce, semplice e facile da usare e dovrebbe essere in grado di funzionare in qualsiasi ambiente POSIX con le ncurses installate.
  • gt5 - Molto simile a ncdu, ma con un approccio diverso.
  • tdu - Un'altra utilità per la visualizzazione dell'uso del disco basata su ncurses.
  • TreeSize - GTK, usa una vista ad albero.
  • Baobab - GTK, usa grafici a torta, una vista ed una mappa ad albero. Viene fornito con GNOME.
  • GdMap - GTK, visualizza una mappa ad albero.
  • KDirStat - KDE, visualizza una mappa ad albero.
  • QDiskUsage - Qt, usa grafici a torta.
  • xdiskusage - FLTK, visualizza una mappa ad albero.
  • fsv - Visualizzazione 3D.
  • Philesight - Clone di Filelight basato sul web.

 

Va precisato che molti di essi non ricevono aggiornamenti da molto tempo, ma in genere tutti sfogliano il file system e mostrano con un colpo d'occhio dove viene utilizzato lo spazio del disco.

Le mie necessità

Nulla da dire o aggiungere sugli analizzatori introdotti sopra, ma ero alla ricerca di una utilità che mi cercasse i file (o le cartelle) più ingombranti con il loro percorso, permettendomi così di cancellarli facilmente. Una lista dei top 10 (o qualsiasi altro numero) oggetti che più pesano sul mio hard disk!

Locate large files or directories on Linux with bash
Trovare i file o le cartelle di grandi dimensioni in Linux con bash

La soluzione

Una discussione su Super User mi ha dato il comando che rispecchia più fedelmente le mie necessità: Linux utility for finding the largest files/directories [closed]. Dopo averlo provato, ho notato diversi messaggi di permesso negato che ne rendevano la lettura dal terminale molto più dispersiva. Così ho aggiunto  un comando per indirizzare su un file di testo l'output pulito di tutti loro.

Ecco il comando finale:

  • Per trovare i 10 file più capienti:
find . -type f -print0 | xargs -0 du | sort -n | tail -10 | cut -f2 | xargs -I{} du -sh {} | grep -v "Permission denied" > largest_files.txt && more largest_files.txt
  • Per trovare le 10 cartelle più capienti:
    find . -type d -print0 | xargs -0 du | sort -n | tail -10 | cut -f2 | xargs -I{} du -sh {} | grep -v "Permission denied" > largest_directories.txt && more largest_directories.txt
    

L'unica differenza è in -type {d:f}, dove la d sta per directory e la f per file; tail -10 significa che voglio conoscere solo i primi 10 oggetti. Infine si può specificare il percorso al posto del "."  punto, in cui la ricerca parte dalla cartella di lavoro corrente e copre tutte le sue sotto cartelle ricorsive.

Ecco una esempio dei mie top 10 file, lanciato dalla mia cartella home... and the winner is:

239M    ./Software/pitivi-0 94-beta-x86/pitivi-0.94-x86_64
243M    ./Software/pitivi-latest-x86/pitivi-latest-x86_64.tar
250M    ./Video/screenoutput.mkv
278M    ./Scaricati/Backup_Prisca/advert_environment.svg
307M    ./Scaricati/Verificare/IperSpaceMaxPE-6.0.1.run
313M    ./Scrivania/Temp/Articoli/Latex/Scanner/scanner_join2.ps
327M    ./Scrivania/Temp/Review/Capitoli/C1/Anaconda3-2.2.0-Linux-x86_64.sh
706M    ./Video/Analytics  How Big Data Can Solve our Most Complex Problems.mp4
1,5G    ./Scaricati/cuda-repo-ubuntu1404-7-0-local 7 0-28 amd64/cuda-repo-ubuntu1404-7-0-local_7.0-28_amd64.deb
34G     ./VirtualBox VMs/Windows7Starter/Windows7Starter.vdi


Potrebbero interessarti anche:

Nicola Rainiero

Ingegnere civile specializzato in geotecnica con l'ambizione di facilitare la propria attività lavorativa usando e creando software libero per un sapere condiviso e collettivo. Mi occupo anche di energie rinnovabili ed in particolare di geotermia a bassa entalpia. Sono da sempre appassionato di web design e modellazione 3D.

Aggiungi un commento

Il contenuto di questo campo è privato e non verrà mostrato pubblicamente.

Plain text

  • Nessun tag HTML consentito.
  • Indirizzi web ed indirizzi e-mail diventano automaticamente dei link.
  • Linee e paragrafi vanno a capo automaticamente.
CAPTCHA
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.