GNU/Linux >> Tutoriels Linux >  >> Linux

Trier les fichiers en fonction de leur taille de manière récursive ?

J'ai besoin de trouver les fichiers les plus volumineux dans un dossier.
Comment analyser un dossier de manière récursive et trier le contenu par taille ?

J'ai essayé d'utiliser ls -R -S , mais cela répertorie également les répertoires.
J'ai aussi essayé d'utiliser find .

Réponse acceptée :

Vous pouvez aussi le faire avec juste du . Juste pour être sûr, j'utilise cette version de du :

$ du --version
du (GNU coreutils) 8.5

L'approche :

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

Répartition de l'approche

La commande du -ah DIR produira une liste de tous les fichiers et répertoires dans un répertoire donné DIR . Le -h produira des tailles lisibles par l'homme que je préfère. Si vous ne les voulez pas, laissez tomber ce commutateur. J'utilise le head -6 juste pour limiter la quantité de sortie !

$ 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

Assez facile pour trier du plus petit au plus grand :

$ 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

Inversez-le, du plus grand au plus petit :

$ 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

Ne me montrez pas le répertoire, juste les fichiers :

$ 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

Si vous souhaitez exclure tous les répertoires à partir de la sortie, vous pouvez utiliser une astuce avec la présence d'un caractère point. Cela suppose que vos noms de répertoires ne contiennent pas de points et que les fichiers que vous recherchez en contiennent. Ensuite, vous pouvez filtrer les répertoires avec 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

Si vous voulez juste la liste du plus petit au plus grand, mais les 6 premiers fichiers incriminés, vous pouvez inverser le commutateur de tri, supprimez (-r ), et utilisez tail -6 au lieu de la 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. Comment rechercher des fichiers par taille et extension ?

  2. Trouver les fichiers les plus volumineux de manière récursive ?

  3. Comment copier récursivement des fichiers par extension de fichier ? ?

  4. Comment rechercher tous les fichiers avec une taille de fichier de zéro (0) octet dans un répertoire de manière récursive

  5. Fichiers .o vs fichiers .a

Comment modifier récursivement les autorisations de fichiers sous Linux

Comment copier des fichiers avec une extension de fichier spécifique de manière récursive

Comment lister les fichiers de manière récursive sous Linux

Créer des fichiers de taille personnalisée sous Linux

Comment vérifier la taille des fichiers et du répertoire sous Linux

Comment lister tous les fichiers classés par taille sous Linux ?