查看文件/目录占用了多大空间是最常见的操作之一,在Linux中我们使用 du (disk usage)命令查看文件的占用空间。
Linux du 命令
这里需要简单的说明一下 占用空间和文件大小 的区别,一般来说文件的占用空间比大小更大,但是对于稀疏文件(spar file)来说,文件的大小比占用空间更大。但是也有一些奇怪的文件占用空间等于0,这跟文件系统的设计有关。
占用空间为0的文件
首先介绍一下du常用的选项:
-h:以人类可读的方式显示,即以K,M,G为单位,提高信息的可读性。-a:递归地显示指定目录中各文件及子目录中各文件占用的数据块数。若既不指定-s,也不指定-a,则显示当前目录中的每一个目录及其中的各子目录所占的磁盘块数。-s:显示目录占用的磁盘空间大小,不显示其下子目录和文件占用的磁盘空间大小-l :统计硬链接占用磁盘空间-L:统计符号链接指向的文件占用的磁盘空间
下面的示例以Apache web服务器文件为例进行说明,其目录结构如下所示:
# tree /etc/httpd//etc/httpd/├── conf│ ├── httpd.conf│ └── magic├── conf.d│ ├── autoindex.conf│ ├── php.conf│ ├── README│ ├── urdir.conf│ └── welcome.conf├── conf.modules.d│ ├── 00-ba.conf│ ├── 00-dav.conf│ ├── 00-lua.conf│ ├── 00-mpm.conf│ ├── 00-optional.conf│ ├── 00-proxy.conf│ ├── 00-systemd.conf│ ├── 01-cgi.conf│ ├── 10-h2.conf│ ├── 10-proxy_h2.conf│ ├── 15-php.conf│ └── README├── logs -> ../../var/log/httpd├── modules -> ../../usr/lib64/httpd/modules├── run -> /run/httpd└── state -> ../../var/lib/httpd7 directories, 19 files
显示指定目录/文件的占用空间
这是我们最常见的用法,只显示指定目录/文件所占用磁盘空间的大小,而不显示其下子目录和文件占用磁盘空间的信息。
相当于windows文件夹属性对话框中的占用空间。
选项:sh
# du -sh /etc/httpd112K /etc/httpd# du -sh /etc/httpd/conf/httpd.conf12K /etc/httpd/conf/httpd.conf
递归显示指定目录下所有目录和文件的占用空间
选项:ah
a 表示 all,递归显示指定目录下所有文件和目录的占用空间。
2-6行显示/etc/httpd/conf.d/目录下各个文件的占用空间
7行显示/etc/httpd/conf.d目录(包括它下面所有文件和目录)的占用空间
最后一行显示/etc/httpd的占用空间
# du -ah /etc/httpd4.0K /etc/httpd/conf.d/README4.0K /etc/httpd/conf.d/php.conf4.0K /etc/httpd/conf.d/autoindex.conf4.0K /etc/httpd/conf.d/urdir.conf4.0K /etc/httpd/conf.d/welcome.conf20K /etc/httpd/conf.d4.0K /etc/httpd/conf.modules.d/10-h2.conf4.0K /etc/httpd/conf.modules.d/10-proxy_h2.conf4.0K /etc/httpd/conf.modules.d/00-ba.conf4.0K /etc/httpd/conf.modules.d/00-dav.conf4.0K /etc/httpd/conf.modules.d/00-lua.conf4.0K /etc/httpd/conf.modules.d/00-mpm.conf4.0K /etc/httpd/conf.modules.d/00-optional.conf4.0K /etc/httpd/conf.modules.d/00-proxy.conf4.0K /etc/httpd/conf.modules.d/00-systemd.conf4.0K /etc/httpd/conf.modules.d/01-cgi.conf4.0K /etc/httpd/conf.modules.d/README4.0K /etc/httpd/conf.modules.d/15-php.conf4.0K /etc/httpd/conf.modules.d/httpd-vhosts.conf52K /etc/httpd/conf.modules.d16K /etc/httpd/conf/magic12K /etc/httpd/conf/httpd.conf.bak12K /etc/httpd/conf/httpd.conf40K /etc/httpd/conf0 /etc/httpd/logs0 /etc/httpd/modules0 /etc/httpd/run0 /etc/httpd/state112K /etc/httpd
指定子目录深度
参数:max-depth
大部分时候只想显示指定目录(第1层)下所有文件和目录的占用空间,即打开 /etc/httpd目录后看到的东西,有点类似Windows中的文件夹详细信息视图,只是将大小换成了占用空间。
如果想显示文件和目录的大小,可以使用 ll -h 命令,不过对于目录只显示目录本身的大小。
# ll -h /etc/httpd
total 12K
drwxr-xr-x 2 root root 4.0K Nov 28 07:46 conf
drwxr-xr-x 2 root root 4.0K Nov 28 07:46 conf.d
drwxr-xr-x 2 root root 4.0K Nov 28 07:46 conf.modules.d
lrwxrwxrwx 1 root root 19 Oct 10 08:48 logs -> ../../var/log/httpd
lrwxrwxrwx 1 root root 29 Oct 10 08:48 modules -> ../../usr/lib64/httpd/modules
lrwxrwxrwx 1 root root 10 Oct 10 08:48 run -> /run/httpd
lrwxrwxrwx 1 root root 19 Oct 10 08:48 state -> ../../var/lib/httpd
# du -ah --max-depth=1 /etc/httpd0 /etc/httpd/run0 /etc/httpd/logs0 /etc/httpd/modules24K /etc/httpd/conf.d0 /etc/httpd/state32K /etc/httpd/conf52K /etc/httpd/conf.modules.d112K /etc/httpd
除了以上常见用法以外,还有两个专门针对软链接和硬链接的选项:
-l:count sizes many times if hard linked,将硬链接也统计进来,实际上更加准确,不添加 l 时只会计算一次。
-L:dereference all symbolic links,将符号链接指向的文件占用磁盘空间的大小也统计进来。
我们在download目录下创建一个符号链接,指向本目录下的一个文件。我们看到上面图片中显示的操作结果,当使用-L选项时,du会把符号链接所指向的文件的大小也统计到目录里来。
本文发布于:2023-02-28 20:03:00,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/zhishi/a/167765278675266.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:linux查看磁盘空间(linux查看磁盘空间剩余情况).doc
本文 PDF 下载地址:linux查看磁盘空间(linux查看磁盘空间剩余情况).pdf
留言与评论(共有 0 条评论) |