du命令用于获取有关Linux中磁盘使用情况的信息。du命令提供了大量有关磁盘使用情况的有用信息,如目录大小、文件大小、可用百分比等。
将文件大小打印为字节
du命令用于以字节为单位列出给定的文件和目录大小。没有额外的参数。下面的命令列出了当前工作目录及其子目录的大小。
du
![图片[1]-Linux du命令教程及示例-yiteyi-C++库](https://www.yiteyi.com/wp-content/uploads/2020/12/linuxtect_image-33.png)
或者,我们可以指定不同于当前工作目录的目录,以便列出文件和目录的大小。在本例中,我们将提供列表大小的绝对完整路径。
du /var/log
![图片[2]-Linux du命令教程及示例-yiteyi-C++库](https://www.yiteyi.com/wp-content/uploads/2020/12/linuxtect_image-34.png)
以可读格式打印文件大小
默认情况下,大小以字节单位打印,这不容易阅读和理解。当大小以千字节、兆字节、千兆字节等形式打印时,可以使用人类可读格式,-h选项以人类可读格式打印大小。
du -h /var/log
输出如下。
625M /var/log/journal/295c2cf105a140e5ab505a9e74ff560e 625M /var/log/journal 252K /var/log/apt 1012K /var/log/installer 4,0K /var/log/private 4,0K /var/log/gdm3 64K /var/log/unattended-upgrades 4,0K /var/log/openvpn 4,0K /var/log/lightdm 40K /var/log/cups 4,0K /var/log/sssd 64K /var/log/apache2 4,0K /var/log/dist-upgrade 32K /var/log/mysql 4,0K /var/log/speech-dispatcher 629M /var/log
打印所有文件和目录的大小
默认情况下,du命令只打印目录大小及其内容。但是通过提供 -a 选项所有文件大小也可以打印如下。或者,可以使用-a选项的长格式 –全部 .
du -h -a /var/log
输出如下。我们可以看到扩展名为*.gz和*.1的文件及其大小也被打印出来。
4,0K /var/log/vmware-network.log 16K /var/log/boot.log.2 4,0K /var/log/kern.log.2.gz 625M /var/log/journal 180K /var/log/syslog.6.gz 1,3M /var/log/dpkg.log.1 4,0K /var/log/kern.log.3.gz 4,0K /var/log/kern.log.1 12K /var/log/apt/history.log 72K /var/log/apt/eipp.log.xz 96K /var/log/apt/term.log 32K /var/log/apt/term.log.1.gz...
通过排除某些文件和目录来打印大小
默认情况下,du命令打印所有指定的文件和目录大小。但是我们也可以通过使用 -十 选项。-X选项的长格式是 –排除 . 提供了一些将被排除的文件或目录模式。在下面的示例中,我们将排除扩展名为“*.gz”的文件。
du -X="*.gz"
排除符号链接
Linux大量使用符号链接,不同的目录可能包含指向其他目录或路径的符号链接。我们可以排除与 -我 选项如下。
du -h -L /var/log
打印所有目录的总大小
目录的总大小可以使用 -c级 选项。总大小包括给定的目录内容及其所有子目录大小。或者,可以使用-c选项的长形式 –总计 .
$ du -h -c /var/log
625M /var/log/journal/295c2cf105a140e5ab505a9e74ff560e 625M /var/log/journal 252K /var/log/apt 1012K /var/log/installer 4,0K /var/log/private 4,0K /var/log/gdm3 64K /var/log/unattended-upgrades 4,0K /var/log/openvpn 4,0K /var/log/lightdm 40K /var/log/cups 4,0K /var/log/sssd 64K /var/log/apache2 4,0K /var/log/dist-upgrade 32K /var/log/mysql 4,0K /var/log/speech-dispatcher 629M /var/log 629M total
打印指定级别文件和目录的大小
默认情况下,du命令遍历所有子目录及其内容。但在某些情况下,这可能是不必要的。我们可以指定要反转的目录,而不计算较低级别的目录。这个 -d级 选项和级别号可用于此操作。在下面的示例中,我们将只遍历级别1的目录和文件。
du -d 1 /var/log
639020 /var/log/journal 252 /var/log/apt 1012 /var/log/installer 4 /var/log/private 4 /var/log/gdm3 64 /var/log/unattended-upgrades 4 /var/log/openvpn 4 /var/log/lightdm 40 /var/log/cups 4 /var/log/sssd 64 /var/log/apache2 4 /var/log/dist-upgrade 32 /var/log/mysql 4 /var/log/speech-dispatcher 644028 /var/log
将当前目录大小打印为摘要
这个 -s码 du命令的选项可用于打印文件系统的摘要大小,如下所示。
$ du -s -h /var/log
629M /var/log
打印文件和目录的修改时间
即使不是du命令的主要任务,目录和文件夹的最后修改时间也可以用 –时间 选项如下。
du --time -h /var/log
625M 2020-12-20 12:41 /var/log/journal/295c2cf105a140e5ab505a9e74ff560e 625M 2020-12-20 12:41 /var/log/journal 252K 2020-12-18 09:50 /var/log/apt 1012K 2020-11-02 17:23 /var/log/installer 4,0K 2020-10-22 16:59 /var/log/private 4,0K 2020-11-02 14:37 /var/log/gdm3 64K 2020-12-20 11:57 /var/log/unattended-upgrades 4,0K 2020-08-18 14:42 /var/log/openvpn 4,0K 2020-02-07 14:40 /var/log/lightdm 40K 2020-12-20 12:24 /var/log/cups 4,0K 2020-11-29 00:00 /var/log/sssd 64K 2020-12-20 00:00 /var/log/apache2 4,0K 2020-09-23 01:59 /var/log/dist-upgrade 32K 2020-12-20 00:00 /var/log/mysql 4,0K 2020-08-20 01:11 /var/log/speech-dispatcher 629M 2020-12-20 12:41 /var/log
相关文章: 如何在Linux中删除目录?