建立乙個檔案 b.txt
$ echo -n "b"
> b.txt
檢視檔案大小
$ ls -lh b.txt
-rw-rw-r-- 1 liyongjun liyongjun 1 10月 2 16:53 b.txt
檔案中僅存放乙個字元 『b』 ,所以檔案大小為 1
檢視檔案占用空間
$ du -ah
4.0k ./b.txt
檔案大小 和 檔案占用空間
檔案大小只有 1b,為什麼占用空間為 4kb?
使用 stat 檢視檔案詳情
$ stat b.txt
file: 『b.txt』
size: 1 blocks: 8 io block: 4096 regular file
device: fd01h/64769d inode: 922330 links: 1
access: (0664/-rw-rw-r--) uid: ( 1000/ centli) gid: ( 1000/ centli)
access: 2020-10-02 16:47:00.496640070 +0800
modify: 2020-10-02 16:59:34.705082876 +0800
change: 2020-10-02 16:59:34.705082876 +0800
birth: -
size:檔案的位元組數
blocks:塊數
(ps:個人更傾向於這裡應該寫成 sectors,即占用多少扇區)
io block:每塊的位元組數
檔案儲存在磁碟上,磁碟的最小儲存單位叫做「扇區」(sector)。每個扇區儲存 512 位元組。作業系統讀取硬碟時,不會乙個個扇區的讀取,這樣效率太低,而是一次性連續讀取多個扇區,即一次讀取乙個「塊」(block)。這種由多個扇區組成的「塊」,是檔案訪問的最小單位。「塊」的大小,最常見的是 4kb,即連續 8 個 sector 組成乙個 block。
乙個「塊」只能被乙個檔案占用,即使乙個檔案只占用了「塊」的乙個位元組,其他檔案也不能再使用這個「塊」儲存資料。所以檔案的占用空間為「塊」的整數倍。
參考:理解inode
檔案屬性中「大小」和「占用空間」的區別
檔案大小與占用空間大小(附帶位元組轉KB,MB公式)
很多人一直在困惑,乙個檔案或資料夾屬性中的 大小 size 和 占用空間 size on disk 通常不相互匹配。大小 的值表示檔案實際大小的位元組數,而 占用空間 的值表檔案占用硬碟空間大小的位元組數。這種差異來自檔案系統在驅動器上儲存的檔案的方式。為了減少使用的位址數量,檔案系統把一定數量的位...
PHP統計目錄中檔案個數和檔案大小
dirn 0 目錄數 filen 0 檔案數 用來統計乙個目錄下的檔案和目錄的個數 function getdirnum file else closedir dir getdirnum phpmyadmin echo 目錄數為 echo 檔案數為 返回c盤總空間 total disk total ...
ubuntu 檢視占用檔案空間大小
1,檢視分割槽情況 fdisk l 2,檢視系統的磁碟空間占用情況 df h df th 3,檢視某個目錄的使用空間大小 du sh 需要先進入該目錄,或者後面加上路徑 du sh 路徑 4,檢視該目錄下,每個資料夾占用的空間大小 檢視某目錄下占用空間最多的檔案或目錄。取前10個。需要先進入該目錄下...