Linux 找出占用空间最大档案及目录


有时发现系统的空间用得很多, 那便需要找出占用用空间最大的档案或目录, 或者需要在指定的目录位置下找出占用空间最多的目录, 例如 /home, /var 等。

在 Linux 下没有单一指令可以完成这个工作, 但只要透过管线 (pipe) 将几个指令配合使用才可以简单地完成。

— du : 计算指定目录占用的空间.
— sort : 将档案或输入的资料逐行排序.
— head : 将档案开头的资料输出.
— find : 搜索档案.

以下指令会找出 /home 目录下占用空间最多的 10 个档案及目录:

# du -a /home | sort -n -r | head -n 10

以上输出的单位不是很易读, 如果想将输出容量单位更易读, 例如以 K, M, G, 作为单位, 可以这样做:

# cd /home
# du -hsx * | sort -rh | head -10

以下用 find 指令会只列出档案, 而不列出目录:

# find /home -type f -printf ‘%s %p\n’| sort -nr | head -10

如要只要计算特定档案所占用空间, 可以加入 -iname 参数, 以下是搜索 .mp4 档案

# find /home -type f -iname “*.mp4” -printf ‘%s %p\n’| sort -nr | head -10
Tags:

Leave a Reply