查看文件/目錄占用了多大空間是最常見的操作之一,在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,感謝您對本站的認可!
本文鏈接:http://www.newhan.cn/zhishi/a/167765278675266.html
版權聲明:本站內容均來自互聯網,僅供演示用,請勿用于商業和其他非法用途。如果侵犯了您的權益請與我們聯系,我們將在24小時內刪除。
本文word下載地址:linux查看磁盤空間(linux查看磁盤空間剩余情況).doc
本文 PDF 下載地址:linux查看磁盤空間(linux查看磁盤空間剩余情況).pdf
| 留言與評論(共有 0 條評論) |