Was ist Linux?

青灯夜游
Freigeben: 2022-04-18 19:18:31
Original
7686 Leute haben es durchsucht

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.

Was ist Linux?

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 [选项] [目录或文件名]
Nach dem Login kopieren
Häufig verwendete Optionen sind wie folgt:

-a: Zeigt die Größe aller Dateien und Ordner im Verzeichnis an.
  • -h: Zeigt die Größe in leicht lesbaren Einheiten an wie Kb, Mb, GB usw.
  • - -si: Ähnlich der Option -h, aber die Berechnung basiert auf 1000 statt 1024
  • -s: Zeigt die Gesamtgröße des Verzeichnisses an
  • -d: Dies ist die Abkürzung der Option --max- Depth = N und gibt an, welche Verzeichnisebene erreicht ist.
  • -c: Zusätzlich zur Anzeige die Verzeichnisgröße, eine zusätzliche Zeile zeigt die Gesamtnutzung an.
  • --time: Zeigt die Zeit der zuletzt geänderten Dateien in jedem Verzeichnis an. Filtert Dateien und Verzeichnisse heraus, die kleiner als SIZE sind.
  • --exclude=PATTERN: Filtert Dateinamen oder Verzeichnisnamen heraus, die mit PATTERN übereinstimmen
  • Das folgende Beispiel zeigt die Größe aller Verzeichnisse und Dateien im Verzeichnis an. Die Standardeinheit ist Kb

    [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/
    Nach dem Login kopieren

    Hinweis: Wenn im obigen Beispiel die Option -a nicht verwendet wird, wird standardmäßig nur die Verzeichnisgröße angezeigt, nicht die Dateigröße. Das heißt, wenn Sie 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 1000
    Die Größe des Verzeichnisses temp/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.
  • -h und die Größeneinheit der Option --si werden automatisch an die Größe des Verzeichnisses und der Dateien angepasst. Gesamtgröße des Verzeichnisses

  • Manchmal müssen wir nur die Gesamtgröße eines Verzeichnisses kennen, nicht aber die Unterverzeichnisse. Die Größe der Dateien im Unterverzeichnis kann mit der Option -s ermittelt werden Das obige Beispiel ermittelt die Gesamtgröße des aktuellen Verzeichnisses bzw. die Gesamtgröße des Verzeichnisses temp/. Die Gesamtgröße des Verzeichnisses kann jedoch auch mithilfe der Option -c ermittelt werden. Es wird jedoch zunächst die Größe des Unterverzeichnisses angezeigt Die letzte Zeile zeigt die Gesamtgröße an. In der letzten Zeile des Beispiels unten, 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
Nach dem Login kopieren

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/
Nach dem Login kopieren
Geben Sie die Verzeichnistiefe an

[root@ecs-centos-7 tt]# du -sh .
72K     .
[root@ecs-centos-7 tt]# du -sh temp/
28K     temp/
Nach dem Login kopieren

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
Nach dem Login kopieren

以易读的方式显示

默认显示的大小只有一个孤零零的数字,连单位也没有,让人第一眼看上去有点疑惑,通过 -h 选项可以让大小显示成人类易读的方式,这个选项应该是最常用的了

[root@ecs-centos-7 tt]# tree -d temp/
temp/
└── test
    └── ha

2 directories
Nach dem Login kopieren

上面的例子中, -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/
Nach dem Login kopieren

上面的例子分别获取当前目录的总大小以及 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
Nach dem Login kopieren

指定目录深度

如果一个目录有很多子目录,只想显示指定层数目录大小的话,可以使用 -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/
Nach dem Login kopieren

指定目录深度

[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/
Nach dem Login kopieren

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/
Nach dem Login kopieren

上面的例子中显示了每个目录最近修改时间,时间的粒度只精确到分钟

如果想显示粒度更细些的话,可以用 --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/
Nach dem Login kopieren

例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
Nach dem Login kopieren
Nach dem Login kopieren

按照大小过滤

从显示的结果中,过滤掉指定大小的目录以及文件

[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
Nach dem Login kopieren
Nach dem Login kopieren

上面的例子中,过滤掉小于 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
Nach dem Login kopieren
Nach dem Login kopieren

上面的例子中, 过滤的模式串是: *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 Minuten

Wenn 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 Befehls date. 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
Nach dem Login kopieren
Nach dem Login kopieren
  • 当前目录以及子目录从大到小排序
[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
Nach dem Login kopieren
Nach dem Login kopieren
  • 磁盘占用最大的三个目录以及子目录
[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
Nach dem Login kopieren
Nach dem Login kopieren

相关推荐:《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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage