文章目录
du
命令介绍
先看下帮助文档里的含义
NAME
du - estimate file space usage
du(Disk Usage)命令的功能是查看文件或目录的大小,默认以kb单位显示文件的大小,如果是目录,则会显示目录下各个文件的容量以及目录的总容量。
语法格式
du命令的语法格式是:du 【参数】【文件】
SYNOPSIS
du [OPTION]... [FILE]...
du [OPTION]... --files0-from=F
下面来看下命令的参数有哪些。
基本参数
-a | 列出目录下所有子目录或者文件的大小 |
-h | 以人类可读的容量格式显示 |
-m | 以MB的单位列出容量大小 |
-k | 以KB的单位列出容量大小 |
-s | 只显示目录的容量大小,并不显示其下文件容量 |
-S | 只显示目录和目录下的文件容量,不显示目录下子目录的容量 |
参考实例
1)以人类可读形式显示指定的文件大小
左边显示的是文件容量大小,右边显示的是文件名
[root@localhost ~]# du -h anaconda-ks.cfg 4.0Kanaconda-ks.cfg
2)显示当前目录下所有文件大小
直接输入 du 没有加任何选项时,则 du 会分析当前所在目录里的子目录所占用的硬盘空间;包括隐藏文件
[root@localhost /]# du | wc -l27459[root@localhost ~]# du | wc -l104
3)只显示目录的大小
可以指定目录,加了-s参数只会显示目录本身的容量大小
[root@localhost ~]# du -sh /etc42M/etc
4)显示根下哪个目录文件最大
先查看根目录下的目录,列出以MB为单位的容量,再通过管道符进行排序文件大小
[root@localhost /]# du -sm /* | sort -nur4561/run3674/usr504/var122/boot42/etc4/root1/home0/bin
5)显示所有文件的大小
显示所有的文件,可以看到只显示了10个文件的容量大小,若全部显示,可以使用wc -l 可以看到文件有这么多。
[root@localhost ~]# du -ah | head 4.0K./.bash_logout4.0K./.bash_profile4.0K./.bashrc4.0K./.cshrc4.0K./.tcshrc4.0K./anaconda-ks.cfg4.0K./.bash_history4.0K./.cache/abrt/lastnotification4.0K./.cache/abrt/applet_dirlist8.0K./.cache/abrt[root@localhost ~]# du -a | wc -l167
6)只显示目录下的文件,不显示目录下的子目录
使用-S的命令结果与du命令不加-S的结果是一样的,其实都是显示目录和其下的文件。
[root@localhost ~]# du -S /etc | wc -l746[root@localhost ~]# du /etc | wc -l746
ll -h与du -h命令的区别
不同命令显示文件,为什么会出现文件大小不一样
[root@localhost ~]# ll -h anaconda-ks.cfg -rw-------. 1 root root 1.4K 2月 8 00:02 anaconda-ks.cfg[root@localhost ~]# du -h anaconda-ks.cfg 4.0Kanaconda-ks.cfg
通过使用ll -h 文件与du -sh文件的结果可以发现,明明是同一个文件,但是显示的容量却不相同。
其实这一切都要从block块讲起。
众所周知,磁盘中最小的存储单位是扇区,而每个扇区默认是存储512字节,既是0.5KB);而文件系统默认会一次性读取多个扇区,即一次性读取一个“块”也就是block,一个块的大小常见的是4KB,即连续八个扇区(sector)组成一个 block。
那么写入一个文件的时候,无论这个文件多小,都会占用1个block块。
再回到命令显示的文件大小,可以看出du -h这个命令显示的是磁盘的占用空间,而ll -h显示的是文件的实际大小。
windows里文件有实际大小和占用空间大小。
命令总结
du命令还是挺有意思的,用来查看文件的大小也好,目录的大小也好,都是个不错的命令,若觉得以上内容还行的,可以点赞支持一下!
来源地址:https://blog.csdn.net/rhn_111/article/details/129228599