ls
(List)是Linux中最基礎的文件列表命令,通過添加-l
(長格式)和-h
(人類可讀)選項,可快速查看文件的邏輯大小(內容實際字節數)及易讀格式(KB、MB、GB)。
ls -lh 文件名
ls -lh example.txt
-rw-r--r-- 1 user group 66M Apr 2 2015 example.txt
66M
)即為文件大小,-h
選項將字節自動轉換為易讀單位(如K、M、G);若省略-h
,則默認以字節顯示(如69206016
)。ls -l
顯示的是文件的邏輯大小(內容實際占用的字節數),而非磁盤占用空間。du
(Disk Usage)用于估算文件或目錄在磁盤上的實際占用空間(受文件系統塊大小影響,可能大于邏輯大?。?。其核心優勢是支持遞歸統計目錄及人類可讀格式。
du -h 文件名
du -h example.txt
4.0K example.txt
(表示文件占用4KB磁盤空間)。du -sh 目錄名
du -sh /home/user/Documents
1.2G /home/user/Documents
(-s
選項匯總目錄總大小,-h
易讀格式)。du -ah 目錄名
du -ah /etc
4.0K /etc/passwd
、12K /etc/group
(-a
選項顯示所有文件,包括隱藏文件)。stat
用于顯示文件的完整元信息,包括精確的字節大小(邏輯大?。?、占用塊數、IO塊大小、權限、時間戳等,適合需要精準數據的場景。
stat 文件名
stat example.txt
File: example.txt
Size: 69206016 Blocks: 136 IO Block: 4096 regular file
Device: 802h/2050d Inode: 5243072 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ user) Gid: ( 1000/ group)
Access: 2025-10-01 10:00:00.000000000 +0800
Modify: 2025-09-30 18:30:00.000000000 +0800
Change: 2025-09-30 18:30:00.000000000 +0800
說明:Size
字段為文件邏輯大?。ㄗ止潱?,Blocks
為占用塊數,IO Block
為文件系統塊大小。stat -c "%s" 文件名
stat -c "%s" example.txt
69206016
(直接輸出文件邏輯大小,適合腳本處理)。wc
(Word Count)主要用于統計文件的行數、單詞數、字節數,其中-c
選項可快速獲取文件邏輯大小(字節數)。
wc -c 文件名
wc -c example.txt
69206016 example.txt
(第一個數字為字節數,后面為文件名)。wc -c
的結果與ls -l
的邏輯大小一致,但輸出格式更簡潔,適合腳本中提取字節數。find
用于查找文件或目錄,結合-exec
選項可批量執行stat
命令,快速獲取目錄下所有文件的邏輯大小(適合批量處理場景)。
find 目錄名 -type f -exec stat -c "%s %n" {} \;
find /etc -type f -exec stat -c "%s %n" {} \;
1234 /etc/passwd
5678 /etc/group
91011 /etc/hosts
說明:-type f
僅查找文件(排除目錄),%s
為文件大?。ㄗ止潱?,%n
為文件名。工具/命令 | 查看內容 | 單位 | 是否遞歸 | 適用場景 |
---|---|---|---|---|
ls -lh |
文件邏輯大小 | KB/MB/GB | 否 | 快速查看單個文件大小 |
du -h |
文件/目錄磁盤占用空間 | KB/MB/GB | 是 | 查看目錄總大小或磁盤使用情況 |
stat |
文件邏輯大小+元數據 | 字節 | 否 | 需要精準數據的場景 |
wc -c |
文件邏輯大小 | 字節 | 否 | 腳本中提取字節數 |
find + stat |
批量文件邏輯大小 | 字節 | 是 | 批量處理目錄下所有文件 |
以上工具覆蓋了Linux下查看文件大小的主要需求,可根據具體場景選擇使用。例如:快速查看單個文件大小用ls -lh
,查看目錄總大小用du -sh
,需要精準字節數用stat
,批量處理用find + stat
。