Unter Linux lautet der vollständige Name „Disk Usage“. Es handelt sich um einen Befehl zum Zählen des von einem Verzeichnis oder einer Datei belegten Speicherplatzes. Die Syntax lautet „du [Option] [Verzeichnis- oder Dateiname]“. Der Befehl du unterstützt eine Vielzahl von Optionen: 1. „-h“, der die Größe in leicht lesbaren Einheiten anzeigen kann; 2. „-s“, der die Gesamtgröße des Verzeichnisses anzeigen kann; d", usw.
Die Betriebsumgebung dieses Tutorials: Linux5.9.8-System, Dell G3-Computer.
linux du-Befehl
du ist die Abkürzung für Disk Usage, einer der beliebtesten Befehle unter Linux. du ist ein Befehl, der den von einem Verzeichnis oder einer Datei belegten Speicherplatz zählt lautet wie folgt:
du [选项] [目录或文件名]
[root@ecs-centos-7 tt]# du -a temp/ 4 temp/suba.txt 4 temp/test/abc.txt 4 temp/test/ha/ha.txt 8 temp/test/ha 16 temp/test 4 temp/time.txt 28 temp/
du temp/
ausführen, wird nur die Verzeichnisgröße angezeigt: Einzelne Zahl, sogar die Einheit Nein, es scheint auf den ersten Blick etwas verwirrend zu sein. Die Option -h kann verwendet werden, um die Größe auf eine für Menschen lesbare Weise anzuzeigen. Diese Option sollte im obigen Beispiel am häufigsten verwendet werden , die Standardberechnungsbasis der Option -h ist 1024, die Standardberechnungsbasis der Option --si ist 1000temp/test/ha
wird also mit berechnet Die Option -h beträgt 8,0 KB, und die mit der Option --si berechnete Größe beträgt 8,2 KB. total
, geben die 28 KB vor der Zeichenfolge die Gesamtgröße des temporären Verzeichnisses an. [root@ecs-centos-7 tt]# du temp 8 temp/test/ha 16 temp/test 28 temp
Geben Sie die Verzeichnistiefe an Wenn ein Verzeichnis viele Unterverzeichnisse enthält. Wenn Sie nur die Größe des Verzeichnisses auf einer bestimmten Ebene anzeigen möchten, können Sie die Unterverzeichnisstruktur von
temp/ wie folgt erreichen: [root@ecs-centos-7 tt]# du -b temp/
4117 temp/test/ha
8218 temp/test
12326 temp/
[root@ecs-centos-7 tt]# du -h temp/
8.0K temp/test/ha
16K temp/test
28K temp/
[root@ecs-centos-7 tt]# du --si temp/
8.2k temp/test/ha
17k temp/test
29k temp/
[root@ecs-centos-7 tt]# du -sh . 72K . [root@ecs-centos-7 tt]# du -sh temp/ 28K temp/
du -d 0 temp/< /code>: Zeigt das Verzeichnis der 0. Ebene an, das der Gesamtgröße des aktuellen Verzeichnisses entspricht. Dies entspricht der Option -s</p><p><code> du -d 1 temp/
: Zeigt das Verzeichnis der 1. Ebene an, das temp/ die Gesamtgröße des Testverzeichnisses ist Verzeichnis der zweiten Ebene, also die Gesamtgröße des Verzeichnisses temp/test/hadu temp/
只会显示目录大小,请看以下的例子:
[root@ecs-centos-7 tt]# du -ch temp/ 8.0K temp/test/ha 16K temp/test 28K temp/ 28K total
以易读的方式显示
默认显示的大小只有一个孤零零的数字,连单位也没有,让人第一眼看上去有点疑惑,通过 -h 选项可以让大小显示成人类易读的方式,这个选项应该是最常用的了
[root@ecs-centos-7 tt]# tree -d temp/ temp/ └── test └── ha 2 directories
上面的例子中, -h 选项默认计算基数是 1024 , --si 选项默认计算基数是 1000
所以temp/test/ha
目录以 -h 选项计算的大小是 8.0K,而以 --si 选项计算的大小是 8.2K
-h 以及 --si 选项的大小单位随着目录及文件的大小自动的调整
目录总大小
有时我们只需要知道一个目录的总大小,不需要知道子目录及子目录下文件的大小,可以通过 -s 选项获取目录总大小
[root@ecs-centos-7 tt]# du -d 0 temp/ 28 temp/ [root@ecs-centos-7 tt]# du -d 1 temp/ 16 temp/test 28 temp/ [root@ecs-centos-7 tt]# du --max-depth=2 temp/ 8 temp/test/ha 16 temp/test 28 temp/
上面的例子分别获取当前目录的总大小以及 temp/ 目录的总大小
通过 -c 选项也能获取目录总大小,不过它先显示子目录大小,最后一行显示总大小,下面例子最后一行 total
字符串前面的 28K 表示 temp/ 目录的总大小
[root@ecs-centos-7 tt]# du --time temp 8 2020-07-21 20:11 temp/test/ha 16 2020-07-21 20:11 temp/test 28 2020-07-21 20:13 temp
指定目录深度
如果一个目录有很多子目录,只想显示指定层数目录大小的话,可以使用 -d 选项实现
temp/ 的子目录结构如下:
[root@ecs-centos-7 tt]# du --time --time-style="+%s" temp/ 8 1595333498 temp/test/ha 16 1595333514 temp/test 28 1595333582 temp/
指定目录深度
[root@ecs-centos-7 tt]# du --time --time-style="+%F %T" temp/ 8 2020-07-21 20:11:38 temp/test/ha 16 2020-07-21 20:11:54 temp/test 28 2020-07-21 20:13:02 temp/
du -d 0 temp/
: 显示第0层目录,也即当前目录总大小,此时相当于 -s 选项
du -d 1 temp/
: 显示第1层目录,也即 temp/test 目录的总大小
du --max-depth=2 temp/
: 显示第2层目录,也即 temp/test/ha 目录总大小
显示最近修改时间
[root@ecs-centos-7 tt]# du -b temp/ 4117 temp/test/ha 8218 temp/test 12326 temp/ [root@ecs-centos-7 tt]# du -b -t 4118 temp/ 8218 temp/test 12326 temp/
上面的例子中显示了每个目录最近修改时间,时间的粒度只精确到分钟
如果想显示粒度更细些的话,可以用 --time-syle=STYLE 选项来指定时间的输出格式,其中 STYLE 表示日期的格式化输出字符串,和 date
命令的格式化输出的格式一样的
例1:显示 UTC 时间的秒数(从1970年1月1日到现在的秒数)
[root@ecs-centos-7 tt]# du -a temp 4 temp/suba.txt 4 temp/test/abc.txt 4 temp/test/ha/ha.txt 8 temp/test/ha 16 temp/test 4 temp/time.txt 28 temp [root@ecs-centos-7 tt]# du -a --exclude=*a* temp/ 4 temp/test 4 temp/time.txt 12 temp/
例2:显示完整的年月日时分秒
[root@ecs-centos-7 tt]# du -sh temp/* | sort -hr 10M temp/clpay.tar 16K temp/test 4.0K temp/time.txt 4.0K temp/lnsuba
按照大小过滤
从显示的结果中,过滤掉指定大小的目录以及文件
[root@ecs-centos-7 tt]# du -ah temp/* | sort -hr 10M temp/clpay.tar 16K temp/test 8.0K temp/test/ha 4.0K temp/time.txt 4.0K temp/test/ha/ha.txt 4.0K temp/test/abc.txt 4.0K temp/lnsuba
上面的例子中,过滤掉小于 4118 bytes 的目录
按照目录名或文件名过滤
假如一个目录下子目录太多,我们可以根据子目录名或者文件名和指定的模式串匹配,从而过滤掉匹配上的目录和文件
[root@ecs-centos-7 tt]# du -ah temp/* | sort -hr | head -n 3 10M temp/clpay.tar 16K temp/test 8.0K temp/test/ha
上面的例子中, 过滤的模式串是: *a*
它表示过滤掉目录名或者文件名中含有字符 a
的目录或文件,例子中前面四行的目录或文件名中都包含了 a
Zeigt die letzte Änderungszeit an rrreee
Das obige Beispiel zeigt die letzte Änderungszeit jedes Verzeichnisses, und die Zeitgranularität ist nur genau in MinutenWenn Sie eine feinere Granularität anzeigen möchten, können Sie die Option --time-syle=STYLE verwenden, um das Zeitausgabeformat anzugeben. Darunter stellt STYLE die formatierte Ausgabezeichenfolge des Datums dar, die mit der identisch ist die formatierte Ausgabe des Befehlsdate
. Beispiel 1: Zeigt die Anzahl der Sekunden in UTC-Zeit (vom 1. Januar 1970 bis heute) an. 🎜rrreee🎜Beispiel 2: Zeigt das vollständige Jahr und den gesamten Monat an , Tag, Stunde, Minute und Sekunde 🎜Nach Verzeichnisnamen oder Dateinamen filtern🎜🎜🎜Wenn ein Verzeichnis zu viele Unterverzeichnisse enthält, können wir den Unterverzeichnisnamen oder Dateinamen mit der angegebenen Musterzeichenfolge abgleichen, um die passenden Verzeichnisse und Dateien herauszufiltern🎜rrreee🎜Im obigen Beispiel , die Filtermusterzeichenfolge lautet: *a*
🎜🎜Es bedeutet, Verzeichnisse herauszufiltern, deren Verzeichnisnamen oder Dateinamen das Zeichen a
oder Dateien enthalten Verzeichnis- oder Dateinamen in den ersten vier Zeilen enthalten alle das Zeichen a
, daher werden sie alle herausgefiltert. Welche Art von Dateien füllen häufig die Festplatte? Das Problem besteht darin, dass die Festplatte voll ist. Zu diesem Zeitpunkt können wir du und sort in Kombination verwenden, um den „Täter“ herauszufinden🎜[root@ecs-centos-7 tt]# du -sh temp/* | sort -hr 10M temp/clpay.tar 16K temp/test 4.0K temp/time.txt 4.0K temp/lnsuba
[root@ecs-centos-7 tt]# du -ah temp/* | sort -hr 10M temp/clpay.tar 16K temp/test 8.0K temp/test/ha 4.0K temp/time.txt 4.0K temp/test/ha/ha.txt 4.0K temp/test/abc.txt 4.0K temp/lnsuba
[root@ecs-centos-7 tt]# du -ah temp/* | sort -hr | head -n 3 10M temp/clpay.tar 16K temp/test 8.0K temp/test/ha
相关推荐:《Linux视频教程》
Das obige ist der detaillierte Inhalt vonWas ist Linux?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!