Ich versuche, ein Skript zu schreiben, das eine Verzeichnisgröße berechnet. Wenn die Größe weniger als 10 GB und mehr als 2 GB beträgt, führen Sie eine Aktion aus. Wo muss ich meinen Ordnernamen angeben?
# 10GB
SIZE="1074747474"
# check the current size
CHECK="`du /data/sflow_log/`"
if [ "$CHECK" -gt "$SIZE" ]; then
echo "DONE"
fi
du
ist und wie jeder diese Befehle kennt: Sie könnenman du
Ihr Terminal eingeben, um den Befehl du im Handbuch nachzuschlagen. Dies zeigt eine Ausgabe an, die Sie anzeigen können, und fasst alle Flags wie -h, -c, -s, -b, -B, -apparent-size usw. zusammen, deren Antworten Sie vorschlagen. Dann können Sie selbst entscheiden, wie Sie es am bestendu
für Ihren speziellen Anwendungsfall verwenden möchten .Antworten:
Du kannst tun:
Dadurch erhalten Sie die Größe Ihres Zielverzeichnisses.
Wenn Sie eine kurze Ausgabe wünschen,
du -hcs your_directory
ist schön.quelle
du -hs
==du -hs .
.du | sort -n
du -hcs dir_name/*
enthält die UnterordnerWenn Sie nur die Ordnergröße und nicht die Unterordner anzeigen möchten, können Sie Folgendes verwenden:
Aktualisieren:
Sie sollten wissen, dass
du
der verwendete Speicherplatz angezeigt wird. und nicht die Dateigröße.Sie können verwenden,
--apparent-size
wenn Sie die Summe der tatsächlichen Dateigrößen anzeigen möchten.Und natürlich ist in einem Skript keine
-h
(vom Menschen lesbare) Option erforderlich .Stattdessen können Sie verwenden
-b
zum leichteren Vergleich innerhalb des Skripts verwenden.Sie sollten jedoch beachten, dass dies
-b
für sich--apparent-size
selbst gilt. Und es könnte nicht das sein, was Sie brauchen.also ich denke, du solltest
--block-size
oder verwenden-B
quelle
-b
funktioniert nur unter GNUdu
, nicht unter BSDVerwenden Sie eine Zusammenfassung (
-s
) und Bytes (-b
). Sie können das erste Feld der Zusammenfassung mit ausschneidencut
. Alles zusammen:quelle
Um nur die Größe des Verzeichnisses zu ermitteln, nichts weiter:
Ausgabe sieht aus wie
quelle
--max-depth
ist sehr nützlich, um die Ausgabe sinnvoll zu steuern! Zum Beispiel, um eine gute Vorstellung davon zu bekommen, was in einem Verzeichnis vor sich geht:du -h --max-depth=1
Um die Größe aller Verzeichnisse in einem Verzeichnis zu überprüfen, können Sie Folgendes verwenden:
du -h --max-depth=1
quelle
du -h -d 1
auf Android.du -h -d 1
auf OSXWenn Sie nur die Gesamtgröße des Ordners und wahrscheinlich im MB- oder GB-Format anzeigen möchten, versuchen Sie bitte das folgende Skript
quelle
-g
für 1-Gbyte- und-m
für 1- Mbyte -Zählungen. viaman du
quelle
Wenn es hilft, können Sie auch einen Alias in Ihrem
.bashrc
oder erstellen.bash_profile
.Dies gibt die Größe des aktuellen Verzeichnisses oder des Verzeichnisses aus, das Sie als Argument übergeben haben.
quelle