Linux基础命令-du查看文件的大小

文章目录

du

命令介绍

语法格式

基本参数

参考实例

1)以人类可读形式显示指定的文件大小

2)显示当前目录下所有文件大小

3)只显示目录的大小

4)显示根下哪个目录文件最大

5)显示所有文件的大小

6)只显示目录下的文件,不显示目录下的子目录

ll -h与du -h命令的区别 

命令总结

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.0K	anaconda-ks.cfg

2)显示当前目录下所有文件大小

直接输入 du 没有加任何选项时,则 du 会分析当前所在目录里的子目录所占用的硬盘空间;包括隐藏文件

[root@localhost /]# du | wc -l
27459
[root@localhost ~]# du | wc -l
104

3)只显示目录的大小

可以指定目录,加了-s参数只会显示目录本身的容量大小 

[root@localhost ~]# du -sh /etc
42M	/etc

4)显示根下哪个目录文件最大

先查看根目录下的目录,列出以MB为单位的容量,再通过管道符进行排序文件大小

[root@localhost /]# du -sm /* | sort -nur
4561	/run
3674	/usr
504	/var
122	/boot
42	/etc
4	/root
1	/home
0	/bin

5)显示所有文件的大小

显示所有的文件,可以看到只显示了10个文件的容量大小,若全部显示,可以使用wc -l 可以看到文件有这么多。 

[root@localhost ~]# du -ah | head 
4.0K	./.bash_logout
4.0K	./.bash_profile
4.0K	./.bashrc
4.0K	./.cshrc
4.0K	./.tcshrc
4.0K	./anaconda-ks.cfg
4.0K	./.bash_history
4.0K	./.cache/abrt/lastnotification
4.0K	./.cache/abrt/applet_dirlist
8.0K	./.cache/abrt
[root@localhost ~]# du -a | wc -l
167

6)只显示目录下的文件,不显示目录下的子目录

使用-S的命令结果与du命令不加-S的结果是一样的,其实都是显示目录和其下的文件。 

[root@localhost ~]# du -S /etc | wc -l
746
[root@localhost ~]# du /etc | wc -l
746

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.0K	anaconda-ks.cfg

通过使用ll -h 文件与du -sh文件的结果可以发现,明明是同一个文件,但是显示的容量却不相同。

其实这一切都要从block块讲起。 

众所周知,磁盘中最小的存储单位是扇区,而每个扇区默认是存储512字节,既是0.5KB);而文件系统默认会一次性读取多个扇区,即一次性读取一个“块”也就是block,一个块的大小常见的是4KB,即连续八个扇区(sector)组成一个 block。

那么写入一个文件的时候,无论这个文件多小,都会占用1个block块。

再回到命令显示的文件大小,可以看出du -h这个命令显示的是磁盘的占用空间,而ll -h显示的是文件的实际大小。

附上一张图

windows里文件有实际大小和占用空间大小。 

命令总结

        du命令还是挺有意思的,用来查看文件的大小也好,目录的大小也好,都是个不错的命令,若觉得以上内容还行的,可以点赞支持一下!

猜你喜欢

转载自blog.csdn.net/rhn_111/article/details/129228599