Hai mai desiderato sapere quale cartella o file è il più grande sul tuo disco rigido?
Il comando Find è fantastico, ci permette di fare molte cose (di alcune ne abbiamo già parlato qui), qui ve ne porto un altro uso.
Il seguente comando cercherà nell'intero HDD e ci dirà quali sono i 10 file o cartelle più grandi sul computer:
sudo find / -printf '%s %p\n'| sort -nr | head -10
Se vuoi conoscere non solo i 10 più grandi, ma anche i 20 o qualcosa del genere, scambia gli ultimi 10 con quello desiderato.
Come ho detto prima, questo conterà sia le cartelle che i file, se vuoi solo prendere in considerazione il file carpetas sarebbe aggiungere -type d (d = directory):
sudo find / -type d -printf '%s %p\n'| sort -nr | head -10
Al contrario e voglio vedere solo il file record e nessuna cartella sarebbe -type f (f = file):
sudo find / -type f -printf '%s %p\n'| sort -nr | head -10
Se vuoi specificare il tipo di file, cioè, prendi in considerazione .mp4, aggiungi semplicemente un -iname "* .mp4":
sudo find / -iname "*.mp4" -printf '%s %p\n'| sort -nr | head -10
Nel mio caso i file più grandi che ho sono gli HDD virtuali dei miei server virtuali con KVM+ Qemu, poi un video di calcio (presentazione di Gareth Bale con il Real Madrid) e altre cose.
Proprio quello che cercavo per sapere dove occupo più spazio nella mia radice e poterlo così liberare.
Grazie.
Articolo molto buono, molto utile. Grazie mille ... A proposito, Hala Madrid !! hehehe
Mi unisco al gruppo di Madrid qui
qualche tempo fa ho installato centos 6.5 minimal e ho avuto questo errore e l'ho risolto modificando il / etc / hostname, perché il nome host che avevo scritto nella configurazione della scheda di rete non veniva riconosciuto da apache
Se c'è qualcosa che mi piace di «Desde Linux» è che per la console compaiono sempre queste gemme che rendono più sopportabile la nostra vita tra zero e uno. Grazie mille KZKG ^ Gaara!
Giurerei di aver letto in questo blog un'alternativa, che da quando l'ho scoperta non posso più farne a meno:
ncdu
È un comando interattivo che non viene fornito di default (devi installarlo dal tuo pacchetto distro) ma è tremendamente utile. Ordina i file in base alla dimensione, mostrandoti una barra o una percentuale dello spazio che occupano sulla partizione. Ecco uno screenshot tratto da Internet http://www.heitorlessa.com/wp-content/uploads/2013/04/NCDU-1.9-Disk-stats.png
Può anche essere fatto con il comando du.
Questo serve per trovare le cartelle
$ du -Sh | sort -rh | testa -n 15
E questo per trovare i file più grandi.
$ find. -type f -exec du -Sh {} + | sort -rh | testa -n 15
$ find. -type f -exec du -Sh {} + | sort -rh | testa -n 15
E qual è la spiegazione per ciascuna opzione?
Un ottimo articolo mi è stato di grande aiuto.
Grazie molte per averlo condiviso.
Qualcuno può aiutarmi? Ho bisogno di un comando che cerchi all'interno di una directory tutti i file .txt che sono maggiori di 0 byte e li sposta in un'altra directory, finora ho trovato solo questo:
trova. -type f -size + 1b -exec mv /home/oradev/new/*.txt / home / oradev / move \;
ma sposta tutti i file indipendentemente dalla loro dimensione.
Grazie per il comando!
L'aveva usato in altre occasioni, ma solo in modalità "Script kiddie" ... a causa della fretta e così via.
E anche se find è un comando molto comunemente usato (-name, –exec), non sono stato in grado di dare una buona occhiata all'intero manuale.
Mi ero già reso conto del potere brutale che ha questo magnifico strumento ... ma ora lo vedo con più attenzione e lo ammiro di più.
Eccolo in spagnolo:
http://es.tldp.org/Paginas-manual/man-pages-es-extra-0.8a/man1/find.1.html
È una puttana che gli argomenti non siano più intuitivi ... O li conosci, perché li hai imparati, o rovisti in inet o man quando non ci sono più ... otas.
Grazie ancora e grazie come sempre a GNU!
Una domanda ... solo per curiosità:
Quando metti l'argomento "printf" per trovare ...
Find usa il comando printf di sistema o printf è implementato all'interno di find?
Dico questo, perché printf è un comando implementato nel sistema per sempre, ma che personalmente non ho mai dovuto utilizzare ... almeno direttamente.
Un saluto!
giac.
potresti dirmi come eseguire sudo find / -type f -printf '% s% p \ n' | sort -nr | testa -10
evitando alcuni percorsi?
Ho per esempio:
/ dev / sda2 19G 16G 2.8G 85% /
udev 10M 0 10M 0% / dev
tmpfs 3.2 G 329 M 2.9 G 11% / corsa
tmpfs 7.9G 153M 7.8G 2% / dev / shm
tmpfs 5.0 M 0 5.0 M 0% / esecuzione / blocco
tmpfs 7.9G 0 7.9G 0% / sys / fs / cgroup
/ dev / sda1 453M 37M 389M 9% / avvio
/ dev / drbd3 477 M 2.3 M 445 M 1% / var / lib / nfs
/ dev / drbd1 1.9T 821G 1005G 45% / nfs / home
/ dev / drbd2 2.9T 960G 1.8T 36% / nfs / homearchive
/ dev / drbd0 962G 426G 488G 47% / nfs / pool
e durante l'esecuzione find / -type f -printf '% s% p \ n' | sort -nr | testa -10
Ottengo file da /nfs/
vorrei ignorarlo