用du检查Linux上已使用的磁盘空间的教程

115 阅读2分钟

无论你有多少存储空间,它总是有可能被填满。在大多数个人设备上,驱动器被照片、视频和音乐填满,但在服务器上,由于用户账户和日志文件中的数据,空间减少是很正常的。无论你是负责管理一个多用户系统,还是只负责你自己的笔记本电脑,你都可以通过du 命令检查磁盘的使用情况。

默认情况下,du 提供了你当前目录中所使用的磁盘空间的数量,以及每个子目录的大小。

在这个例子中,我的当前目录占用了全部60 KB,其中12 KB被子目录.backups

如果你觉得这很混乱,并希望分别看到所有的大小,你可以使用--separate-dirs (或简称为-S )选项。

$ du --separate-dirs
12 ./.backups
48 .

这是同样的信息(48和12是60),但每个目录都是独立处理的。

要看更多的细节,可以使用--all(或简称-a)选项,它显示每个目录中的每个文件。

$ du --separate-dirs --all
4       ./example.adoc
28      ./graphic.png
4       ./.backups/example.adoc~
12      ./.backups
4       ./index.html
4       ./index.adoc
48      .

查看文件的修改时间

当查看文件以找出哪些文件占用了空间时,查看一个文件最后一次被修改的时间可能很有用。一些一年没有被碰过的文件很可能是归档的候选文件,特别是当你的空间快用完时。

要用du查看文件的修改时间,请使用--time 选项。

$ du --separate-dirs --all --time
28      2021-07-21 11:12        ./graphic.png
4       2021-07-03 10:43        ./example.adoc
4       2021-07-13 13:03        ./index.html
4       2021-07-23 14:18        ./index.adoc
48      2021-07-23 14:19        .

为文件大小设置一个阈值

当为了磁盘空间的利益而审查文件时,你可能只关心大小不等的文件。你可以用--threshold (简称-t )选项为你想看的文件大小设置一个阈值。例如,只查看大于1GB的大小。

$ \du --separate-dirs --all --time --threshold=1G ~/Footage/
1839008 2021-07-14 13:55        /home/tux/Footage/snowfall.mp4
1577980 2020-04-11 13:10        /home/tux/Footage/waterfall.mp4
8588936 2021-07-14 13:55        /home/tux/Footage/

当文件大小变得特别大时,它们可能难以阅读。用--human-readable (或简称-h )选项使文件大小更容易。

$ \du --separate-dirs --all --time \
--threshold=1G --human-readable ~/Footage/
1.8G 2021-07-14 13:55        /home/tux/Footage/snowfall.mp4
1.6G 2020-04-11 13:10        /home/tux/Footage/waterfall.mp4
8.5G 2021-07-14 13:55        /home/tux/Footage/

查看可用的磁盘空间

如果只是想获得一个驱动器上还剩下多少磁盘空间的摘要,请阅读我们关于df命令的文章。