使用df 命令查看当前系统磁盘的使用情况:
1 2 3 4 5 6 7 8 9 | [root@node ~] # df -Th Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/centos-root xfs 17G 1.7G 16G 10% / devtmpfs devtmpfs 478M 0 478M 0% /dev tmpfs tmpfs 489M 0 489M 0% /dev/shm tmpfs tmpfs 489M 6.7M 482M 2% /run tmpfs tmpfs 489M 0 489M 0% /sys/fs/cgroup /dev/sda1 xfs 1014M 125M 890M 13% /boot tmpfs tmpfs 98M 0 98M 0% /run/user/0 |
那如果想查看某个分区下的文件或者目录的大小呢?du命令就可以派上用场了.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | [root@node ~] # du -sh /* 0 /bin 92M /boot 0 /dev 36M /etc 0 /home 0 /lib 0 /lib64 0 /media 0 /mnt 0 /opt du : cannot access ‘ /proc/15358/task/15358/fd/4 ’: No such file or directory du : cannot access ‘ /proc/15358/task/15358/fdinfo/4 ’: No such file or directory du : cannot access ‘ /proc/15358/fd/4 ’: No such file or directory du : cannot access ‘ /proc/15358/fdinfo/4 ’: No such file or directory 0 /proc 39M /root 6.7M /run 0 /sbin 0 /srv 0 /sys 113M /tmp 1.4G /usr 150M /var |
文件大小:
1 2 3 4 5 6 | [root@node ~] # du -sh ./* 4.0K . /anaconda-ks .cfg 39M . /forex-web-4 .8.0.172.zip [root@node ~] # du -h --max-depth=0 ./* 4.0K . /anaconda-ks .cfg 39M . /forex-web-4 .8.0.172.zip |
可见,上述两个命令的结果是等同的。
那么要如何将一个目录下所有文件的大小都列出来,并按照文件和文件夹的大小来排序呢?
我们以/usr 为例
1 2 3 4 5 6 7 8 9 10 11 12 13 | [root@node ~] # du -sh /usr/* |sort -nr 568M /usr/lib 280M /usr/bin 263M /usr/share 160M /usr/lib64 57M /usr/sbin 36K /usr/include 12M /usr/libexec 0 /usr/tmp 0 /usr/src 0 /usr/local 0 /usr/games 0 /usr/etc |
通过sort 这个命令来帮助我们排序,但是这个排序不对哦,因为加了-h的参数导致。
1 2 3 4 5 6 7 8 9 10 11 12 13 | [root@node ~] # du -s /usr/* |sort -nr 581208 /usr/lib 285748 /usr/bin 268664 /usr/share 162984 /usr/lib64 57688 /usr/sbin 11884 /usr/libexec 36 /usr/include 0 /usr/tmp 0 /usr/src 0 /usr/local 0 /usr/games 0 /usr/etc |
这样排序就算正常了。
分别选出排在前面的10个和排在后面的10个
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | [root@node ~] # du -s /usr/* |sort -nr | head 581208 /usr/lib 285748 /usr/bin 268664 /usr/share 162984 /usr/lib64 57688 /usr/sbin 11884 /usr/libexec 36 /usr/include 0 /usr/tmp 0 /usr/src 0 /usr/local [root@node ~] # du -s /usr/* |sort -nr | tail 268664 /usr/share 162984 /usr/lib64 57688 /usr/sbin 11884 /usr/libexec 36 /usr/include 0 /usr/tmp 0 /usr/src 0 /usr/local 0 /usr/games 0 /usr/etc |
千里之行始于笔下