Linux 文件、文件夹大小排序、文件统计分析

By | 2023年4月13日

常用命令

# 查看磁盘使用空间
df -h
# 查看当前目录下的文件和子目录的大小
du -sh *

# 查看深度为 0 的目录的大小,这仅会列出当前目录的大小
du -h -d 0
# 查看深度为 1 的目录的大小,这仅会列出当前目录和子目录的大小
du -h -d 1
# 查看深度为 2 的目录的大小,并以 M 为单位从大到小排序
du -m -d 2 | sort -nr

# 以 M 为单位,从大到小排序
du -sm * | sort -nr
# 以 M 为单位,从大到小排序,显示前3个
du -sh * | head -n 3


# 以 K、M、G 为单位显示并过滤,从大到小排序
du -sh * | grep K | sort -nr
du -sh * | grep M | sort -nr
du -sh * | grep G | sort -nr

# 统计 Nginx 访问日志,查出排名前 5 的请求IP(这对于找出爬虫行为的IP很有用)
cat /var/log/nginx/access.log |awk '{print  $1}'|sort -nr|uniq -c|sort -nr |head -5
# 使用 grep 排除不显示含有 1.1.1.1 和 2.2.2.2 的IP
cat /var/log/nginx/access.log |awk '{print  $1}'|sort -nr|uniq -c|sort -nr | grep -v "1.1.1.1\|2.2.2.2" | head -5

注意:lsdu 显示出来的文件大小有差别,这个是因为稀疏文件的缘故,稀疏文件中的 “洞” 不占存储空间。

du 参数解释

  • -d 用于指定深入到的目录的层级
  • -s 仅显示总计
  • -h 以K,M,G为单位,提高信息的可读性
  • -m 以1MB为单位
  • -k 以1024 bytes为单位

更多参数请参考 Linux du 命令

sort 参数解释

  • -n 依照数值的大小排序
  • -r 以相反的顺序来排序

更多参数请参考 Linux sort 命令

uniq

uniq 命令用于检查及删除文本文件中重复出现的行列,一般与 sort 命令结合使用。
当重复的行并不相邻时,uniq 命令是不起作用的,这时我们就可以先使用 sort:

sort access.log | uniq -c
  • -c 在每列旁边显示该行重复出现的次数

参数参考:Linux uniq 命令

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注