Ich muss die größten Dateien in einem Ordner finden.
Wie scanne ich einen Ordner rekursiv und sortiere den Inhalt nach Größe?
Ich habe versucht, ls -R -S
zu verwenden , aber dies listet auch die Verzeichnisse auf.
Ich habe es auch mit find
versucht .
Akzeptierte Antwort:
Das geht auch einfach mit du
. Sicherheitshalber verwende ich diese Version von du
:
$ du --version
du (GNU coreutils) 8.5
Der Ansatz:
$ du -ah ..DIR.. | grep -v "/$" | sort -rh
Aufschlüsselung des Ansatzes
Der Befehl du -ah DIR
erzeugt eine Liste aller Dateien und Verzeichnisse in einem gegebenen Verzeichnis DIR
. Das -h
wird menschenlesbare Größen erzeugen, die ich bevorzuge. Wenn Sie sie nicht wollen, lassen Sie diesen Schalter fallen. Ich verwende den head -6
nur um die Ausgabemenge zu begrenzen!
$ 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
Einfach genug, um es vom kleinsten zum größten zu sortieren:
$ 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
Kehren Sie es um, vom größten zum kleinsten:
$ 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
Zeig mir nicht das Verzeichnis, nur die Dateien:
$ 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
Wenn Sie alle Verzeichnisse ausschließen möchten Aus der Ausgabe können Sie einen Trick mit dem Vorhandensein eines Punktzeichens verwenden. Dies setzt voraus, dass Ihre Verzeichnisnamen keine Punkte enthalten und dass die Dateien, nach denen Sie suchen, Punkte enthalten. Dann können Sie die Verzeichnisse mit grep -v '\s/[^.]*$'
herausfiltern :
$ 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
Wenn Sie nur die Liste von den kleinsten bis zu den größten, aber den 6 am häufigsten problematischen Dateien haben möchten, können Sie den Sortierschalter umkehren, löschen (-r
) und verwenden Sie tail -6
anstelle des 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