目录
- 1 du命令
- 1.1 du命令说明
- ## 1.2 实例
- -a:显示当前目录下所有文件和目录
- -s:显示当前目录下所有文件和目录总大小
- --max-depth:显示当前目录,目录深度为1的,所有目录的总大小
- -k:输出内容以 kb 单位显示磁盘使用量
- 2 sort命令
- 2.1 sort 命令说明
- 2.2 实例
- 默认排序
- -M:按照月份缩写进行排序
- -h:按照人类可读进行排序
- -u:去重
- -r:倒叙
- -n:按数字排序
- -c:检查文件是否排序
- 总结
1 du命令
1.1 du命令说明
du命令主要是用来查看目录或文件所占磁盘空间的大小。
如果工作中遇到磁盘使用率过大,可以通过这个命令找到是哪个文件或者目录占用过大,从而解决问题。所以是一个很实用的命令。
格式:du [OPTION]… [FILE]
常用参数:
- -0,–null:输出内容不换行
- -a,–all:显示所有文件或目录的磁盘使用情况,包括隐藏文件,以及子目录下的所有文件和目录
- -c,–total:显示指定目录下所有文件和目录的磁盘使用情况,还有所有文件和目录的总和,一般和–max-depth一起使用
- -d,–max-depth=N,显示该目录下最多多少深度的目录,比如–max-depth=2,当前目录为/,此时不仅会显示该目录下的所有文件及目录占用磁盘空间情况,还会显示 // 目录下的文件及目录的磁盘占用情况
- –h, --human-readable:以人类可读格式打印尺寸,也就是说根据数字大小换算成合适的单位,如:1K 234M 2G
- –inodes:显示inode号
- -k:输出内容以 kb 单位显示磁盘使用量
- -m:输出内容以 mb 单位显示磁盘使用量
- l:统计硬链接的次数
- L:取消对所有符号链接的引用
- -s 或 --summarize:仅显示总计的磁盘使用量,不显示每个文件和目录的详细信息。
- -S 或 --separate-dirs:显示每个目录的大小,不包含其子目录的大小。
- -x, --one-file-system:跳过不同文件系统的目录
- –help:显示帮助信息
- –version:显示du的版本
## 1.2 实例
-a:显示当前目录下所有文件和目录
# 显示当前目录下所有文件和目录
du -ah
-s:显示当前目录下所有文件和目录总大小
# 显示当前目录下所有文件和目录总大小
du -hs
75M .
# 不能和 -a 参数共用
–max-depth:显示当前目录,目录深度为1的,所有目录的总大小
# 注意:此处--max-depth 是双-
# 显示当前目录,目录深度为1的,所有目录的总大小
# 该命令多用于:如果工作中遇到磁盘占用过大时,查找是哪个文件或者目录占用过大
du -h --max-depth=1
8.0K ./.ssh
20K ./snap
4.0K ./.cache
8.0K ./.vim
12K ./.local
70M ./haproxy-2.8.5
75M .
75M total
du -Sh --max-depth=1
8.0K ./.ssh
4.0K ./snap
4.0K ./.cache
8.0K ./.vim
4.0K ./.local
18M ./haproxy-2.8.5
4.6M .
du -ch --max-depth=1
8.0K ./.ssh
20K ./snap
4.0K ./.cache
8.0K ./.vim
12K ./.local
70M ./haproxy-2.8.5
75M .
75M total
-k:输出内容以 kb 单位显示磁盘使用量
# -k
du -k --max-depth=1
# 输出文件的大小都是kb为单位
8 ./.ssh
20 ./snap
4 ./.cache
8 ./.vim
12 ./.local
71268 ./haproxy-2.8.5
75972 .
2 sort命令
sort 命令是常用的文本排序工具,它可以根据指定的规则对文本文件的内容进行排序。通常和du命令结合使用来找到占用磁盘最大的文件。
2.1 sort 命令说明
作用:将所有文件的排序序列写入标准输出。如果没有FILE,或者当FILE为-时,读取标准输入。
使用:sort [OPTION]… [FILE]
常用参数:
- 排序选项:
- -b:忽略空白格,如果每行前面有空格,从非空格处开始排序
- -d:在排位时仅根据字母、数字和空格来排位
- -f:忽略大小写,不区分大小写
- -M:按照月份缩写进行排序
- -h:根据人类可读数字进行排序。例如:4k,1.2M,0.9G,如果不使用-h参数,排序结果为:0.9G、1.2M、4K;如果使用-h参数,排序结果为:4K、1.2M、0.9G。这个参数在查询文件大小时常用
- -n:按照数字大小进行排序
- r:倒序排。sort默认是顺序排,即从小到大;-r则为从大到小
- –sort=WORD:按照指定的WORD进行排序,WORD的值为:-g:通用数字;-h:以人类可读数字;-M:月份;-n:数字;-R:随机;-V:版本
- -V:版本号
- 其他选项:
- -c:检查文件是否已排序
- -m:合并已经排序的文件
- -o, --output=FILE :将结果写入文件而不是标准输出
- -u:去重
2.2 实例
准备一个文件
vim test
dfghit903
Bdek568
eMdto 11
2098K
Sep
1.2G
248
qertj
23.3M
bdild11
Bdek568
Oct
_a
默认排序
# 可以看出来,sort默认排序是顺序排序,不区分大小写
sort test
-----------
1.2G
2098K
23.3M
248
_a
Bdek568
Bdek568
bdild11
dfghit903
eMdto 11
Oct
qertj
Sep
-M:按照月份缩写进行排序
sort -M test
1.2G
2098K
23.3M
248
_a
Bdek568
Bdek568
bdild11
dfghit903
eMdto 11
qertj
Sep
Oct
-h:按照人类可读进行排序
sort -h test
_a
Bdek568
Bdek568
bdild11
dfghit903
eMdto 11
Oct
qertj
Sep
248
2098K
23.3M
1.2G
-u:去重
sort -u test
1.2G
2098K
23.3M
248
_a
Bdek568
bdild11
dfghit903
eMdto 11
Oct
qertj
Sep
-r:倒叙
sort -r test
Sep
qertj
Oct
eMdto 11
dfghit903
bdild11
Bdek568
Bdek568
_a
248
23.3M
2098K
1.2G
-n:按数字排序
# 按照数字排序,并将结果输出到文件中
sort -n test -o a1
root@con01:~# cat a1
_a
Bdek568
Bdek568
bdild11
dfghit903
eMdto 11
Oct
qertj
Sep
1.2G
23.3M
248
2098K
-c:检查文件是否排序
# 如下命令是检查文件是否排序
sort -c a1
sort: a1:10: disorder: 1.2G
# 输出内容表示:第十行内容:1.2G不符合排序
sort -c test
sort: test:2: disorder: Bdek568
# 下面是检查文件是否按照数字排序
sort -c -n test
sort: test:2: disorder: Bdek568
sort -c -n a1
# 无输出内容
# 在上一个实验中可以知道,a1文件为我们按数字排序后输出的内容,所以检查发现内容已经排序,所系无输出
总结
把du命令和sort命令写在一起,也是因为这两个命令在平常工作中经常一起使用,尤其是在查询磁盘空间使用过大时,这两个命令很实用。
#常用命令:
du -Sh --max-depth=1 |sort -hr
# 按照这个命令一级一级目录往下找,很容易找到占用过大的文件