Linux目錄大小查看的常用命令詳解
一、du 命令基礎(chǔ)
du
(Disk Usage)命令是 Linux/Unix 系統(tǒng)中用于估算文件和目錄磁盤使用情況的實用程序。它通過遞歸遍歷目錄結(jié)構(gòu),計算每個文件和子目錄占用的磁盤空間,并以塊為單位(默認情況下)顯示結(jié)果。
基本語法
du [選項] [文件或目錄]
如果不指定文件或目錄,du
會默認統(tǒng)計當(dāng)前目錄及其所有子目錄的磁盤使用情況。
為什么需要 -h 選項?
原始的 du
命令輸出以磁盤塊為單位(通常 1 塊=512 字節(jié)或 1KB),這種表示方式對人類閱讀不夠友好。例如:
du data
可能輸出:
123456 data/subdir1 789012 data/subdir2 912468 data
這樣的數(shù)字難以直觀理解。-h
(human-readable)選項的出現(xiàn)解決了這個問題,它會自動選擇最合適的單位(KB、MB、GB 或 TB)來顯示大小:
du -h data
輸出變?yōu)椋?/p>
4.0K data/subdir1 8.2M data/subdir2 1.2G data
二、du -h 命令詳解
輸出解讀
du -h
的典型輸出包含多行信息:
- 子目錄行:顯示每個子目錄的大小和路徑
- 總計行(最后一行):顯示指定目錄的總大小
例如:
4.0K data/subdir1 8.2M data/subdir2 1.2G data
這里:
data/subdir1
占用 4.0KBdata/subdir2
占用 8.2MB- 整個
data
目錄占用 1.2GB
常用選項組合
-s
(匯總):僅顯示總大小,不顯示子目錄詳情
du -sh data
輸出:
1.2G data
-c
(總計):在最后添加一個總計行
du -hc data
輸出:
4.0K data/subdir1 8.2M data/subdir2 1.2G data 1.2G 總用量
--max-depth=N
:控制顯示的目錄深度
du -h --max-depth=1 data
只顯示 data 下第一級子目錄的大小
三、du 與其他命令的對比
du vs df
du
(Disk Usage):從文件系統(tǒng)角度計算文件和目錄占用的空間df
(Disk Free):顯示文件系統(tǒng)的整體磁盤使用情況
du
更適合查找具體目錄或文件占用的空間,而 df
更適合查看整個磁盤或分區(qū)的使用情況。
du vs ls -l
ls -l
顯示的是文件的實際大?。ㄟ壿嫶笮。?/li>du
顯示的是文件占用的磁盤空間(可能因塊分配而大于實際大?。?/li>
例如,一個 1 字節(jié)的文件:
ls -l
顯示 1 字節(jié)du
可能顯示 4KB(取決于文件系統(tǒng)的塊大?。?/li>
四、實際應(yīng)用場景
1. 查找大目錄
du -h / | sort -rh | head -n 20
這條命令組合:
- 從根目錄開始計算所有目錄大小
- 按人類可讀格式輸出
- 按大小逆序排序
- 顯示前 20 個最大的目錄
2. 監(jiān)控用戶磁盤使用
du -sh /home/*
快速查看所有用戶主目錄的磁盤使用情況。
3. 排除特定目錄
du -h --exclude='*.log' /var
統(tǒng)計 /var
目錄大小,但排除所有 .log
文件。
4. 比較目錄變化
du -sh data # 進行一些操作后 du -sh data
通過兩次執(zhí)行比較目錄大小的變化。
五、高級技巧與注意事項
1. 處理符號鏈接
默認情況下,du
會統(tǒng)計符號鏈接指向的文件大小。使用 -L
選項可以跟隨符號鏈接:
du -Lh /path
2. 顯示修改時間
結(jié)合 --time
選項可以顯示最后修改時間:
du -h --time data
3. 性能優(yōu)化
對于大型文件系統(tǒng),du
可能需要較長時間。可以:
- 使用
--apparent-size
顯示表觀大小而非磁盤使用量(更快但不夠準(zhǔn)確) - 限制目錄深度
--max-depth
- 在非高峰時段運行
4. 跨文件系統(tǒng)統(tǒng)計
默認 du
會統(tǒng)計掛載點下的其他文件系統(tǒng)。使用 -x
可以限制在當(dāng)前文件系統(tǒng):
du -xh /
六、常見問題解答
Q1:為什么 du
和 df
顯示的總空間不一致?
A1:可能原因包括:
- 已刪除但仍有進程打開的文件
- 文件系統(tǒng)保留空間
- 不同的統(tǒng)計方法(
df
統(tǒng)計整個文件系統(tǒng),du
統(tǒng)計具體文件)
Q2:如何統(tǒng)計目錄中的文件數(shù)量而非大?。?/strong>
A2:使用 find
和 wc
:
find data -type f | wc -l
Q3:du
顯示的 size 為什么比實際文件總和要大?
A3:du
統(tǒng)計的是磁盤使用量,包括:
- 文件實際內(nèi)容
- 文件系統(tǒng)元數(shù)據(jù)
- 由于塊分配導(dǎo)致的額外空間
到此這篇關(guān)于Linux目錄大小查看的常用命令詳解的文章就介紹到這了,更多相關(guān)Linux目錄大小查看內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Shell+Curl網(wǎng)站狀態(tài)檢查腳本 抓出無法訪問的站點
這篇文章主要介紹了Shell+Curl網(wǎng)站狀態(tài)檢查腳本 抓出無法訪問的站點,需要的朋友可以參考下2015-10-10shell腳本函數(shù):控制顏色、定位、居中顯示的代碼
這篇文章主要介紹了shell腳本函數(shù):控制顏色、定位、居中顯示的代碼,需要的朋友可以參考下2014-04-04shell腳本5種執(zhí)行方式及腳本不同的執(zhí)行方法和區(qū)別詳解
我們都知道bash?shell?腳本的方法有多種,下面這篇文章主要給大家介紹了關(guān)于shell腳本5種執(zhí)行方式及腳本不同的執(zhí)行方法和區(qū)別的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2022-07-07bash scp command not found的解決方法
今天在一系統(tǒng)上運行bash scp提示command not found,經(jīng)過如下方法解決了,需要的朋友可以參考下2013-03-03