ls h du sh的大小顯示不一致原因

2021-10-21 18:15:56 字數 1641 閱讀 7651

近期在學習中偶然發現:ls -h du -sh的大小顯示不一致具體如下

[root@localhost ~]

# ll -h

總用量 20k

-rw-r--r--. 1 root root 3.8k 1月 7 08:17 1.txt

-rw-------. 1 root root 1.4k 4月 27 2020 anaconda-ks.cfg

-rw-r--r--. 1 root root 8.5k 1月 7 08:20 top.txt

[root@localhost ~]

# du -sh *

4.0k 1.txt

4.0k anaconda-ks.cfg

12k top.txt

通過詳細了解後發現,du == disk usage 屬於磁碟使用量 占用的磁碟空間

不同之處

​ du 指這個檔案在磁碟中占用了多少空間,計算占用了多少block塊,而block塊的大小預設為4096也就是4k,當你乙個檔案大小為1位元組的檔案,他也要占用4k。如果你的系統塊大小制定為16k,即便你放入乙個1k的檔案,也顯示你占用16k。

​ 所以在乙個分割槽存在大檔案的時候block的值可以設定大一點,有利於空間利用。存放的比較小的檔案即可塊大小設定小一點。

結論​ 通產情況下,ls顯示的檔案大小是要比du顯示的磁碟占用空間是小的。

檢視block塊的大小

[root@localhost ~]

# xfs_growfs /dev/sda1

meta-data=/dev/sda1 isize=512 agcount=4, agsize=65536 blks

= sectsz=512 attr=2, projid32bit=1

= crc=1 finobt=0 spinodes=0

data = bsize=4096 blocks=262144, imaxpct=25

= sunit=0 swidth=0 blks

naming =version 2 bsize=4096 ascii-ci=0 ftype=1

log =internal bsize=4096 blocks=2560, version=2

= sectsz=512 sunit=0 blks, lazy-count=1

realtime =none extsz=4096 blocks=0, rtextents=0

dumpe2fs -h 分割槽路徑

我們在檢視指定分割槽詳細檔案資訊時,用dumpe2fs 時卻發現報錯,

dumpe2fs: bad magic number in super-block 當嘗試開啟 /dev/sda1 時找不到有效的檔案系統超級塊.

這個是因為在安裝centos7時,根分割槽預設使用的檔案系統型別是xfs,而7以前的版本如6使用的是ext4型別。

快取不一致

當程式在執行過程中,會將運算需要的資料從主存複製乙份到cpu的快取記憶體當中,那麼cpu進行計算時就可以直接從它的快取記憶體讀取資料和向其中寫入資料,當運算結束之後,再將快取記憶體中的資料重新整理到主存當中。舉個簡單的例子 i i 1。當執行緒執行這個語句時,會先從主存當中讀取i的值,然後複製乙份到...

version magic 不一致問題

碰到乙個問題,在開發過程中發現以前編譯的模組載入失敗了。wlan version magic 4.1.15 gfb2dbf6 smp preempt mod unload armv7 p2v8 should be 4.1.15 ge5de83b dirty smp preempt mod unloa...

ceph pg不一致問題

今天在公司環境中出現了pg不一致問題,通過ceph health detail命令檢視如下 pg 19.211 is active clean inconsistent,acting 88,16 pg 19.214 is active clean inconsistent,acting 59,36 ...