Maison  >  Article  >  Opération et maintenance  >  qu'est-ce que Linux du

qu'est-ce que Linux du

青灯夜游
青灯夜游original
2022-04-18 19:18:207598parcourir

Sous Linux, le nom complet de du est "Disk Usage". C'est une commande pour compter l'espace disque occupé par un répertoire ou un fichier. La syntaxe est "du [option] [nom du répertoire ou du fichier]". La commande du prend en charge une variété d'options : 1. "-h", qui peut afficher la taille en unités faciles à lire ; 2. "-s", qui peut afficher la taille totale du répertoire 3. "- ; d", etc.

qu'est-ce que Linux du

L'environnement d'exploitation de ce tutoriel : système linux5.9.8, ordinateur Dell G3.

linux du command

du est l'abréviation de Disk Usage, l'une des commandes les plus populaires sous Linux du est une commande qui compte l'espace disque occupé par un répertoire ou un fichier. est la suivante :

du [选项] [目录或文件名]
Les options couramment utilisées sont les suivantes :

-a : Afficher la taille de tous les fichiers et dossiers du répertoire
  • -h : Afficher la taille en unités faciles à lire tels que Ko, Mb, Gb, etc.
  • - -si : Similaire à l'option -h, mais le calcul utilise 1000 comme base au lieu de 1024
  • -s : Affiche la taille totale du répertoire
  • -d : C'est l'abréviation de l'option --max-degree=N, indiquant la profondeur. Quel niveau de répertoire est atteint ? Les répertoires dépassant le niveau spécifié seront ignorés
  • -c : En plus de. affichant la taille du répertoire, une ligne supplémentaire affiche l'utilisation totale
  • --time : affiche l'heure des fichiers les plus récemment modifiés dans chaque répertoire
  • -t : est l'abréviation de --threshold=SIZE. , filtre les fichiers et répertoires plus petits que SIZE
  • --exclude=PATTERN : filtre les noms de fichiers ou de répertoires qui correspondent à PATTERN
Exemple d'utilisation

Afficher la taille de tous les répertoires et fichiers

L'exemple suivant montre la taille de tous les répertoires et fichiers du répertoire. L'unité par défaut est 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/
Remarque : si l'exemple ci-dessus n'utilise pas l'option -a, par défaut, seule la taille du répertoire est affichée, pas la taille du fichier. Autrement dit, l'exécution de du temp/ affichera uniquement la taille du répertoire. Veuillez consulter l'exemple suivant :

[root@ecs-centos-7 tt]# du temp
8       temp/test/ha
16      temp/test
28      temp

Affiché de manière facile à liredu temp/ 只会显示目录大小,请看以下的例子:

[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/

以易读的方式显示

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

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

上面的例子中, -h 选项默认计算基数是 1024 , --si 选项默认计算基数是 1000
所以temp/test/ha目录以 -h 选项计算的大小是 8.0K,而以 --si 选项计算的大小是 8.2K

-h 以及 --si 选项的大小单位随着目录及文件的大小自动的调整

目录总大小

有时我们只需要知道一个目录的总大小,不需要知道子目录及子目录下文件的大小,可以通过 -s 选项获取目录总大小

[root@ecs-centos-7 tt]# du -ch temp/
8.0K    temp/test/ha
16K     temp/test
28K     temp/
28K     total

上面的例子分别获取当前目录的总大小以及 temp/ 目录的总大小

通过 -c 选项也能获取目录总大小,不过它先显示子目录大小,最后一行显示总大小,下面例子最后一行 total 字符串前面的 28K 表示 temp/ 目录的总大小

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

2 directories

指定目录深度

如果一个目录有很多子目录,只想显示指定层数目录大小的话,可以使用 -d 选项实现

temp/ 的子目录结构如下:

[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/

指定目录深度

[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

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 --time --time-style="+%s" temp/      
8       1595333498      temp/test/ha
16      1595333514      temp/test
28      1595333582      temp/

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

如果想显示粒度更细些的话,可以用 --time-syle=STYLE 选项来指定时间的输出格式,其中 STYLE 表示日期的格式化输出字符串,和 date 命令的格式化输出的格式一样的

例1:显示 UTC 时间的秒数(从1970年1月1日到现在的秒数)

[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/

例2:显示完整的年月日时分秒

[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/

按照大小过滤

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

[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/

上面的例子中,过滤掉小于 4118 bytes 的目录

按照目录名或文件名过滤

假如一个目录下子目录太多,我们可以根据子目录名或者文件名和指定的模式串匹配,从而过滤掉匹配上的目录和文件

[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

上面的例子中, 过滤的模式串是: *a*

它表示过滤掉目录名或者文件名中含有字符 a的目录或文件,例子中前面四行的目录或文件名中都包含了 a

La taille affichée par défaut n'est qu'un. nombre unique, même l'unité Non, cela semble un peu déroutant à première vue. L'option -h peut être utilisée pour afficher la taille de manière lisible par l'homme. Cette option devrait être la plus couramment utilisée

[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
Dans l'exemple ci-dessus. , la base de calcul par défaut de l'option -h est 1024, la base de calcul par défaut de l'option --si est 1000
Donc la taille du répertoire temp/test/ha calculée avec le L'option -h est de 8,0K, et la taille calculée avec l'option --si est de 8,2K

-h et l'unité de taille de l'option --si est automatiquement ajustée en fonction de la taille du répertoire et des fichiers

🎜🎜Taille totale du répertoire🎜🎜🎜Parfois, nous avons seulement besoin de connaître la taille totale d'un répertoire, et nous n'avons pas besoin de connaître les sous-répertoires et la taille des fichiers dans le sous-répertoire peut être obtenue en utilisant l'option -s 🎜
[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
🎜Le. L'exemple ci-dessus obtient respectivement la taille totale du répertoire actuel et la taille totale du répertoire temp/. 🎜🎜La taille totale du répertoire peut également être obtenue en utilisant l'option -c. Cependant, il affiche d'abord la taille du sous-répertoire, et. la dernière ligne affiche la taille totale. Dans la dernière ligne de l'exemple ci-dessous, total, les 28 Ko devant la chaîne indiquent la taille totale du répertoire temp/🎜rrreee🎜🎜Spécifiez la profondeur du répertoire. 🎜🎜🎜Si un répertoire Il existe de nombreux sous-répertoires. Si vous souhaitez afficher uniquement la taille du répertoire à un niveau spécifié, vous pouvez utiliser l'option -d pour obtenir la structure de sous-répertoire de 🎜🎜temp/ comme suit : 🎜rrreee🎜 Spécifiez la profondeur du répertoire🎜rrreee🎜du -d 0 temp/ : Affiche le répertoire de niveau 0, qui est la taille totale du répertoire courant. Ceci équivaut à l'option -s🎜🎜<code>. du -d 1 temp/ : Affiche le répertoire de 1er niveau, qui est temp/ La taille totale du répertoire de test🎜🎜du --max-degree=2 temp/ : Affiche le répertoire de deuxième niveau, c'est-à-dire la taille totale du répertoire temp/test/ha🎜🎜🎜Affiche la dernière heure de modification🎜🎜 rrreee🎜L'exemple ci-dessus montre la dernière heure de modification de chaque répertoire, et la granularité temporelle n'est qu'exacte en minutes🎜🎜Si vous souhaitez afficher une granularité plus fine, vous pouvez utiliser l'option --time-syle=STYLE pour spécifier le format de sortie de l'heure. Parmi eux, STYLE représente la chaîne de sortie formatée de la date, qui est la même que celle-ci. la sortie formatée de la commande date. Exemple 1 : Afficher le nombre de secondes en heure UTC (du 1er janvier 1970 à nos jours) secondes)🎜rrreee🎜Exemple 2 : Afficher l'année complète, le mois. , jour, heure, minute et seconde🎜rrreee🎜🎜Filtrer par taille🎜🎜🎜À partir des résultats affichés, filtrez les répertoires et les fichiers de la taille spécifiée🎜rrreee🎜Dans l'exemple ci-dessus, filtrez les répertoires de moins de 4118 octets🎜🎜 🎜Filtrer par nom de répertoire ou nom de fichier🎜🎜🎜S'il y a trop de sous-répertoires dans un répertoire, nous pouvons faire correspondre le nom du sous-répertoire ou le nom de fichier avec la chaîne de modèle spécifiée pour filtrer les répertoires et fichiers correspondants🎜rrreee🎜Dans l'exemple ci-dessus , la chaîne du modèle de filtrage est : *a*🎜🎜Cela signifie filtrer les répertoires dont les noms de répertoires ou de fichiers contiennent le caractère a ou les fichiers. Les noms de répertoires ou de fichiers dans les quatre premières lignes contiennent tous le caractère a, ils sont donc filtrés. Quels types de fichiers remplissent souvent le disque ? Le problème rencontré est que le disque est plein. cette fois, nous pouvons utiliser du et trier en combinaison pour découvrir le "coupable"🎜
  • 当前目录下文件从大到小排序
[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视频教程

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn