2010-08-17 8 views
5

Ich habe einen Ordner mit. TCB und .TCH-Dateien. Ich muss wissen, wie groß die Größe aller .tcb-Dateien bzw. aller .tch-Dateien ist. Ich tat so:Berechnen Sie den gesamten Speicherplatzverbrauch bestimmter Dateien in Unix-Terminal

1) ich einen temporären Ordner erstellt und dann:

mv *tch temp 

2) und dann:

du -sk temp 

fand ich den Befehl im Internet und Wikipedia sagt diese : "du (abgekürzt von Disk Usage) ist ein Standard-Unix-Programm zur Schätzung der Speicherplatznutzung". Ich denke der Grund, warum es sagt, dass es eine Schätzung ist, ist, dass, wenn es Links gibt, die Größe des Links statt der verknüpften Datei angezeigt wird.

Aber wenn ich

ls -l 

im temporären Ordner tun (welche die alle enthält * .tch) Dateien und dann die Größen zusammenzufassen, die im Terminal angezeigt werden, habe ich eine andere Dateigröße. Warum ist das der Fall?

Nun, in Summe, was ich brauche, ist ein Befehl die mir die echte Datei Größe * alle .tch Dateien in einem Ordner zeigt, die auch andere Dateitypen enthalten kann.

Ich hoffe, dass mir jemand damit helfen kann. Danke vielmals!

Antwort

10

können Sie die -L Option du verwenden, wenn Sie symbolische Links folgen wollen (das heißt, die Berechnung der Größe des Link-Ziel, nicht der Link selbst). Sie können auch die Option -c verwenden, um am Ende eine Gesamtsumme anzuzeigen.

Bewaffnet mit diesen Optionen versuchen Sie du -skLc *.tch.

Weitere Einzelheiten zu du finden Sie unter this manpage.

+1

Beachten Sie, dass dies möglicherweise nicht zu dem erwarteten Ergebnis führt, wenn der Ordner eine Verknüpfung zu einer .tch-Datei im selben Verzeichnis enthält. Diese Datei würde zweimal gezählt werden: einmal für die "tatsächliche" Datei und einmal für die verknüpfte Version. – bta

+0

der Ordner enthält keine Links, so scheint diese Lösung zu tun, was ich will. Danke bta – mkn

1

Schauen Sie sich die spezifische man-Seite für Ihre Version von du an, da diese sich erheblich in der Anzahl unterscheiden.

„Ungefähre“ kann sein, weil:

  1. Blocks verwendet oder Bytes verwendet werden, können mit Blöcken gemeldet werden über Angabe Dateigrößen, die nicht genau ein Vielfaches der Blockgröße sind aber genau darstellt „Raum verwendet, dass Ich kann nicht für andere Materialien verwenden "
  2. Unix-Dateien können" Löcher "durch Suche nach einem langen Weg und Schreiben erstellt haben. Das OS reserviert nicht wirklich Platz für die übersprungenen Löcher.
  3. Symbolische Links können auf die reale Datei, auf die sie verweisen, dereferenziert werden.

Wenn Sie nur die bytecount verwenden wc -c *.tcb

Verwandte Themen