Maison >Opération et maintenance >exploitation et maintenance Linux >qu'est-ce que Linux du
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.
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
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!