Ich arbeite an einem Cluster, der mit anderen Kollegen geteilt wird. Die Festplatte ist begrenzt (und war gelegentlich voll), daher bereinige ich gelegentlich meinen Teil. Ich möchte dies schnell tun, also mache ich dies bis jetzt, indem ich eine Liste von Dateien erstelle, die größer als 100 MB sind und älter als 3 Monate sind, und ich sehe, ob ich sie noch brauche.
Aber jetzt denke ich, dass es einen Ordner mit> 1000 kleineren Dateien geben könnte, den ich vermisse, also möchte ich einen einfachen Weg finden, um zu sehen, ob dies der Fall ist. Aus der Art und Weise, wie ich Daten generiere, würde es hilfreich sein, eine Liste der Gesamtgröße pro Erweiterung zu erhalten. Im Zusammenhang mit dieser Frage "Erweiterung" als alles hinter dem letzten Punkt im Dateinamen.
Angenommen, ich habe mehrere Ordner mit mehreren Dateien:
folder1/file1.bmp 40 kiB
folder1/file2.jpg 20 kiB
folder2/file3.bmp 30 kiB
folder2/file4.jpg 8 kiB
Ist es möglich, eine Liste der gesamten Dateigröße pro Dateierweiterung zu erstellen?
bmp 70 kiB
jpg 28 kiB
Dateien ohne Erweiterung interessieren mich nicht, daher können sie ignoriert oder in eine Kategorie eingeordnet werden.
Ich ging bereits durch die Menschen Seiten ls
, du
und find
, aber ich weiß nicht , was das richtige Werkzeug für diesen Job ist ...
quelle
Antworten:
Auf einem GNU-System:
Oder das Gleiche mit der
perl
Vermeidung der-printf
Erweiterung von GNUfind
(verwendet immer noch eine GNU-Erweiterung-print0
, aber diese wird heutzutage allgemeiner unterstützt):Es gibt eine Ausgabe wie:
Wenn Sie möchten
KiB
,MiB
... Suffixe, leiten Sie annumfmt --to=iec-i --suffix=B
.%b*512
Gibt die Festplattennutzung an. Beachten Sie jedoch, dass Dateien, die mehrmals fest verknüpft sind, mehrmals gezählt werden, sodass möglicherweise eine Diskrepanz mit dendu
Berichten auftritt.quelle
-printf
ist spezifisch für GNUfind
, weshalb ich auf einem GNU-System sagte .perl
Alternative, die auch unter macOS funktionieren sollte.Hier ist eine andere Lösung:
Der Teil, der die Erweiterungen erhält, ist:
Suchen Sie als nächstes nach den Dateien mit einer Erweiterung und drucken Sie sie auch auf dem Bildschirm aus:
Als nächstes wollen wir die Erweiterung und die Summe behalten:
und halten Sie es in der gleichen Zeile:
quelle
Nicht so schön wie Stephanes Lösung, aber Sie könnten es versuchen
Hier müssen Sie dies für jeden Dateityp ausführen.
quelle
du
Aufruf ausgeführt wird. Mit GNUxargs
möchten Sie das-r
Flag hinzufügen, damit du nicht ausgeführt wird, wenn keine Datei vorhanden ist (andernfalls wird die Festplattennutzung des aktuellen Verzeichnisses verwendet). Möglicherweise möchten Sie ein hinzufügen-type f
oder! type d
vermeiden, dass die Dateien in Verzeichnissen gezählt werden, deren Name auf endet.png
.