檔案大小 和 檔案占用空間

2021-10-09 22:49:07 字數 1363 閱讀 2797

建立乙個檔案 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個。需要先進入該目錄下...