GNU/Linux >> Linux Esercitazione >  >> Linux

Ordinare i file in base alle dimensioni in modo ricorsivo?

Devo trovare i file più grandi in una cartella.
Come posso scansionare una cartella in modo ricorsivo e ordinare i contenuti per dimensione?

Ho provato a usare ls -R -S , ma questo elenca anche le directory.
Ho anche provato a utilizzare find .

Risposta accettata:

Puoi farlo anche solo con du . Per sicurezza sto usando questa versione di du :

$ du --version
du (GNU coreutils) 8.5

L'approccio:

$ du -ah ..DIR.. | grep -v "/$" | sort -rh

Ripartizione dell'approccio

Il comando du -ah DIR produrrà un elenco di tutti i file e le directory in una determinata directory DIR . Il -h produrrà dimensioni leggibili dall'uomo che preferisco. Se non li vuoi, rilascia quell'interruttore. Sto usando il head -6 solo per limitare la quantità di output!

$ du -ah ~/Downloads/ | head -6
4.4M    //eadn-wc01-5196795.nxedge.io/home/saml/Downloads/kodak_W820_wireless_frame/W820_W1020_WirelessFrames_exUG_GLB_en.pdf
624K    //eadn-wc01-5196795.nxedge.io/home/saml/Downloads/kodak_W820_wireless_frame/easyshare_w820.pdf
4.9M    //eadn-wc01-5196795.nxedge.io/home/saml/Downloads/kodak_W820_wireless_frame/W820_W1020WirelessFrameExUG_GLB_en.pdf
9.8M    /home/saml/Downloads/kodak_W820_wireless_frame
8.0K    /home/saml/Downloads/bugs.xls
604K    //eadn-wc01-5196795.nxedge.io/home/saml/Downloads/netgear_gs724t/GS7xxT_HIG_5Jan10.pdf

Abbastanza facile da ordinare dal più piccolo al più grande:

$ du -ah ~/Downloads/ | sort -h | head -6
0   /home/saml/Downloads/apps_archive/monitoring/nagios/nagios-check_sip-1.3/usr/lib64/nagios/plugins/check_ldaps
0   /home/saml/Downloads/data/elasticsearch/nodes/0/indices/logstash-2013.04.06/0/index/write.lock
0   /home/saml/Downloads/data/elasticsearch/nodes/0/indices/logstash-2013.04.06/0/translog/translog-1365292480753
0   /home/saml/Downloads/data/elasticsearch/nodes/0/indices/logstash-2013.04.06/1/index/write.lock
0   /home/saml/Downloads/data/elasticsearch/nodes/0/indices/logstash-2013.04.06/1/translog/translog-1365292480946
0   /home/saml/Downloads/data/elasticsearch/nodes/0/indices/logstash-2013.04.06/2/index/write.lock

Invertilo, dal più grande al più piccolo:

$ du -ah ~/Downloads/ | sort -rh | head -6
10G /home/saml/Downloads/
3.8G    /home/saml/Downloads/audible/audio_books
3.8G    /home/saml/Downloads/audible
2.3G    /home/saml/Downloads/apps_archive
1.5G    /home/saml/Downloads/digital_blasphemy/db1440ppng.zip
1.5G    /home/saml/Downloads/digital_blasphemy

Non mostrarmi la directory, solo i file:

$ du -ah ~/Downloads/ | grep -v "/$" | sort -rh | head -6 
3.8G    /home/saml/Downloads/audible/audio_books
3.8G    /home/saml/Downloads/audible
2.3G    /home/saml/Downloads/apps_archive
1.5G    /home/saml/Downloads/digital_blasphemy/db1440ppng.zip
1.5G    /home/saml/Downloads/digital_blasphemy
835M    /home/saml/Downloads/apps_archive/cad_cam_cae/salome/Salome-V6_5_0-LGPL-x86_64.run

Se vuoi escludere tutte le directory dall'output, puoi usare un trucco con la presenza di un punto. Ciò presuppone che i nomi delle directory non contengano punti e che i file che stai cercando lo facciano. Quindi puoi filtrare le directory con grep -v '\s/[^.]*$' :

$ du -ah ~/Downloads/ | grep -v '\s/[^.]*$' | sort -rh | head -2
1.5G    /home/saml/Downloads/digital_blasphemy/db1440ppng.zip
835M    /home/saml/Downloads/apps_archive/cad_cam_cae/salome/Salome-V6_5_0-LGPL-x86_64.run

Se vuoi solo l'elenco dal più piccolo al più grande, ma i primi 6 file offensivi, puoi invertire l'opzione di ordinamento, rilascia (-r ) e usa tail -6 invece di head -6 .

$ du -ah ~/Downloads/ | grep -v "/$" | sort -h | tail -6
835M    /home/saml/Downloads/apps_archive/cad_cam_cae/salome/Salome-V6_5_0-LGPL-x86_64.run
1.5G    /home/saml/Downloads/digital_blasphemy
1.5G    /home/saml/Downloads/digital_blasphemy/db1440ppng.zip
2.3G    /home/saml/Downloads/apps_archive
3.8G    /home/saml/Downloads/audible
3.8G    /home/saml/Downloads/audible/audio_books

Linux
  1. Trova i file più grandi in modo ricorsivo?

  2. Come copiare ricorsivamente i file per estensione del file??

  3. Ottimizza ricorsivamente i file PNG

  4. File .o vs file .a

  5. Come comprimere i file con un limite di dimensione?

Come modificare ricorsivamente le autorizzazioni dei file in Linux

Come copiare file con estensione di file specifica in modo ricorsivo

Come elencare i file in modo ricorsivo in Linux

Crea file di dimensioni personalizzate in Linux

Come controllare la dimensione di file e directory su Linux

Come elencare tutti i file ordinati per dimensione in Linux?