每天一个Linux命令(4):df、du 查看磁盘空间

标签: Linux  

df命令用于显示磁盘分区上的可使用的磁盘空间。默认显示单位为KB。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。

du命令用来查看某个目录或文件所占空间大小。默认显示单位KB。

df命令

1. 语法

df (选项) (参数)

2. 选项

-a或--all:包含全部的文件系统;
--block-size=<区块大小>:以指定的区块大小来显示区块数目;
-h或--human-readable:以可读性较高的方式来显示信息;
-H或--si:与-h参数相同,但在计算时是以1000 Bytes为换算单位而非1024 Bytes;
-i或--inodes:显示inode的信息;
-k或--kilobytes:指定区块大小为1024字节;
-l或--local:仅显示本地端的文件系统;
-m或--megabytes:指定区块大小为1048576字节;
--no-sync:在取得磁盘使用信息前,不要执行sync指令,此为预设值;
-P或--portability:使用POSIX的输出格式;
--sync:在取得磁盘使用信息前,先执行sync指令;
-t<文件系统类型>或--type=<文件系统类型>:仅显示指定文件系统类型的磁盘信息;
-T或--print-type:显示文件系统的类型;
-x<文件系统类型>或--exclude-type=<文件系统类型>:不要显示指定文件系统类型的磁盘信息;
--help:显示帮助;
--version:显示版本信息。

3. 参数

文件:指定文件系统上的文件。

4. 栗子

1)查看系统磁盘设备,默认是KB为单位:

[root@4383b9267a03 /]# df
Filesystem     1K-blocks    Used Available Use% Mounted on
overlay         61255492 7455824  50658344  13% /
tmpfs              65536       0     65536   0% /dev
tmpfs            1023516       0   1023516   0% /sys/fs/cgroup
/dev/sda1       61255492 7455824  50658344  13% /etc/hosts
shm                65536       0     65536   0% /dev/shm
tmpfs            1023516    8396   1015120   1% /run

2)使用-h选项以KB以上的单位来显示,可读性高:

[root@4383b9267a03 /]# df -h
Filesystem      Size  Used Avail Use% Mounted on
overlay          59G  7.2G   49G  13% /
tmpfs            64M     0   64M   0% /dev
tmpfs          1000M     0 1000M   0% /sys/fs/cgroup
/dev/sda1        59G  7.2G   49G  13% /etc/hosts
shm              64M     0   64M   0% /dev/shm
tmpfs          1000M  8.2M  992M   1% /run

du 命令

1. 语法

du [选项] [文件]

2. 选项

-a或-all 显示全部文件与目录的大小。
-b或-bytes 显示目录或文件大小时,以byte为单位。
-c或--total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。
-k或--kilobytes 以KB(1024bytes)为单位输出。
-m或--megabytes 以MB为单位输出。
-s或--summarize 仅显示总计,只列出最后加总的值。
-h或--human-readable 以K,M,G为单位,提高信息的可读性。
-x或--one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。
-L<符号链接>或--dereference<符号链接> 显示选项中所指定符号链接的源文件大小。
-S或--separate-dirs 显示个别目录的大小时,并不含其子目录的大小。
-X<文件>或--exclude-from=<文件> 在<文件>指定目录或文件。
--exclude=<目录或文件> 略过指定的目录或文件。
-D或--dereference-args 显示指定符号链接的源文件大小。
-H或--si 与-h参数相同,但是K,M,G是以1000为换算单位。
-l或--count-links 重复计算硬件链接的文件。

3. 栗子

1)显示目录或者文件所占空间:

[root@4383b9267a03 systemd]# du
4	./user
4	./system/default.target.wants
4	./system/getty.target.wants
4	./system/system-update.target.wants
4	./system/multi-user.target.wants
20	./system
52	.

只显示当前目录下面的子目录的目录大小和当前目录的总的大小,最下面的52为当前目录的总大小

2)查看指定目录的所占空间:

[root@4383b9267a03 systemd]# du system
4	system/default.target.wants
4	system/getty.target.wants
4	system/system-update.target.wants
4	system/multi-user.target.wants
20	system

3)显示多个文件所占空间:

[root@4383b9267a03 systemd]# du bootchart.conf user.conf
4	bootchart.conf
4	user.conf

4)列表显示总和的大小且易读:

[root@4383b9267a03 systemd]# du -sh *
4.0K	bootchart.conf
4.0K	coredump.conf
4.0K	journald.conf
4.0K	logind.conf
20K	system
4.0K	system.conf
4.0K	user
4.0K	user.conf

5)和 sort 结合对文件排序

# 查看当前目录下的所有文件和文件夹大小,并从大到小排序
du -sh * | sort -nr

这个命令对吗?
不对!因为du -sh展示的结果单位不同,但是sort排序只能针对数字,导致980KB的文件排在1GB文件的前面。
 
# 查看当前目录下的所有文件和文件夹大小,找出所有GB大小的文件,并从大到小排序
du -sh * | grep G | sort -nr
    
# 这样就可以达到目的了~, 但是如果文件夹较多的话,还要一个一个的进入去找,怎么解决呢?接着看下面:

# 去掉 -s 参数,可以直接查看包括所有文件夹下的所有文件
du -h * | grep G | sort -nr

# 显示排序后的前10个
[root@4383b9267a03 etc]# du -s * | sort -nr | head -10
1036	pki
656	services
112	openldap
76	security
72	pam.d
64	dbus-1
52	systemd
48	yum
44	rc.d
36	yum.repos.d

「真诚赞赏,手留余香」

请我喝杯咖啡?

使用微信扫描二维码完成支付

相关文章