Linux记录一:查看磁盘、文件大小
Linux实操知识记录
一,查看磁盘空间大小的命令:df
df命令用于查看磁盘分区上的磁盘空间,包括使用了多少,还剩多少,默认单位是KB
比如以下命令:
df -hl
结果如下:
[root@localhost ~]# df -hl
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 40G 10G 28G 27% /
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 644K 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
tmpfs 379M 0 379M 0% /run/user/1002
tmpfs 379M 0 379M 0% /run/user/0
执行的结果每列的含义:
第一列Filesystem,磁盘分区
第二列Size,磁盘分区的大小
第三列Used,已使用的空间
第四列Avail,可用的空间
第五列Use%,已使用的百分比
第六列Mounted on,挂载点
解释一下后面的h和l参数,这个运行df -help有详细说明:h是把显示的单位改成容易辨认的单位,不再是默认的KB了,而l参数表示只显示本地磁盘分区,不包含的分区比如其他服务器共享的磁盘。
下面附上df命令的全部参数使用说明:
-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:显示版本信息。
二,查看文件和目录大小的命令:du
du是用来查看文件和目录大小用的,和df略有区别
1,比如要看/usr目录的总大小,可以用以下命令:
du -sh /usr
执行果如下:
[root@localhost ~]# du -sh /usr
6.9G /usr
或者进到/usr目录后直接执行:
du -sh
执行结果如下:
[root@localhost usr]# du -sh
6.9G
其中的-s参数就是查看总大小(区别于查看其中每个目录的大小),而-h参数是把默认的单位KB改为比较好辨认的单位。
2,如果要看/usr/local目录下各个子目录的大小,包括子目录的子目录,但不包含/usr下文件,可以用以下命令:
du -h
执行结果如下:
[root@localhost local]# du -h
68K ./src/fastdfs/docker/dockerfile_local/conf
4.0K ./src/fastdfs/docker/dockerfile_local/source
...
4.0K ./etc
4.0K ./lib
194M .
注:该命令不包含/usr/local目录下的文件大小
3,如果要看/usr/local目录下各个子目录的大小,包括子目录的子目录,且包含/usr/local下文件,可以用以下命令:
du –h *
执行结果如下:
[root@localhost local]# du -h *
16M bin
4.0K etc
...
13M src/nginx-1.17.1/objs
8.0K src/nginx-1.17.1/contrib/vim/indent
132K src/nginx-1.17.1/contrib/vim/syntax
8.0K src/nginx-1.17.1/contrib/vim/ftdetect
8.0K src/nginx-1.17.1/contrib/vim/ftplugin
160K src/nginx-1.17.1/contrib/vim
24K src/nginx-1.17.1/contrib/unicode2nginx
196K src/nginx-1.17.1/contrib
20M src/nginx-1.17.1
41M src
4,如果要看/usr/local目录下各个子目录的大小,不包括子目录的子目录,可以用以下命令:
du -sh *
执行结果如下:
[root@localhost local]# du -sh *
16M bin
4.0K etc
4.0K games
134M git
4.0K include
4.0K lib
4.0K lib64
4.0K libexec
4.0M nginx
4.0K sbin
96K share
41M src
5,如果要看/usr/local目录下各个子目录和文件的大小,需要使用-a参数:
du -ah
命令执行结果如下:
[root@localhost local]# du -ah
44K ./nginx/logs/error.log
72K ./nginx/logs/access.log
4.0K ./nginx/logs/nginx.pid
124K ./nginx/logs
4.0K ./nginx/uwsgi_temp
4.0K ./nginx/client_body_temp
4.0M ./nginx
4.0K ./etc
4.0K ./lib
194M .
下面附上du命令的参数使用说明:
-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 重复计算硬件链接的文件。
三,排序命令,sort
sort命令可以用于将文件内容排序并输出,也可以用于将某些查询命令的执行结果排序后输出
比如要将文件夹中的文件按大小排序,可以用以下命令:
du -a|sort -rn
执行结果如下:
[root@localhost local]# du -a | sort -rn
198368 .
136524 ./git
104052 ./git/libexec
104048 ./git/libexec/git-core
41836 ./src
23628 ./git/bin
19916 ./src/nginx-1.17.1
15796 ./bin
15792 ./bin/docker-compose
管道前面的du –a就是列出目录下所有的文件和目录的大小,后面的sort命令就是排序。
其中-r参数代表反向排序,因为sort默认是从小到大排序的,加-r是从大到小排序
-n代表按照数字排序,只认数字不认单位,本例中的数字就是文件大小,单位是默认的KB,所以这个命令不能用du -ah,这会使排序结果出现2M小于100K的情况。
附上sort命令各参数的使用说明:
-b:忽略每行前面开始出的空格字符;
-c:检查文件是否已经按照顺序排序;
-d:排序时,处理英文字母、数字及空格字符外,忽略其他的字符;
-f:排序时,将小写字母视为大写字母;
-i:排序时,除了040至176之间的ASCII字符外,忽略其他的字符;
-m:将几个排序号的文件进行合并;
-M:将前面3个字母依照月份的缩写进行排序;
-n:依照数值的大小排序;
-o<输出文件>:将排序后的结果存入制定的文件;输出文件>
-r:以相反的顺序来排序;
-t<分隔字符>:指定排序时所用的栏位分隔字符;分隔字符>
+<起始栏位>-<结束栏位>:以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。 由参数可见sort命令主要还是用于文件内容输出的结束栏位>起始栏位>
四,只显示前几行的命令,head
head命令可以用于显示文件的前几行,也可以用于显示某些查询命令结果的前几行
比如要将文件夹中的文件按大小排序,而且只看最大的几个,可以用以下命令:
du -a|sort -rn|head -5
执行结果:
[root@localhost local]# du -a|sort -rn|head -5
198368 .
136524 ./git
104052 ./git/libexec
104048 ./git/libexec/git-core
41836 ./src
head后面的-5表示显示前5行,不加数字则默认显示前10行
附上head命令各参数的使用说明:
-n<数字>:指定显示头部内容的行数;数字>
-c<字符数>:指定显示头部内容的字符数;字符数>
-v:总是显示文件名的头信息;
-q:不显示文件名的头信息。