2021-05-12 14:32:11
關於右鍵屬性與du -sh顯示的檔案大小不一致的解決
2020-06-16 17:38:45
du -sh filename(其實我們經常用du -sh *,顯示當前目錄下所有的檔案及其大小,如果要排序再在後面加上 | sort -n)
關於右鍵屬性與du -sh顯示的檔案大小不一致的解決:
總之:我的理解就是du查到的是實際硬碟上的block大小,包括很多隱藏檔案,軟,硬連結,以及由於磁碟格式劃分等等的問題,導致了不一致,
右鍵屬性相當於
du --exclude='.*' --exclude='*~' -b -D -s 你的檔案或資料夾 及除開那些多餘的東西。
而du -sh 則是全部顯示了出來,所以,他顯示的要大。
(百度到的,我認為合理)
這裡有幾方面的問題, 導致有好幾種計算檔案大小方法.
1. 內容大小 和 磁碟(或者別的什麼儲存器)占用大小, 比如
1. 內容大小 和 磁碟(或者別的什麼儲存器)占用大小, 比如
# 檔案內容是 三個字母加一個換行
~/tmp$ cat abc.txt
efg
# 內容大小是 4 位元組(--apparent-size 計算內容大小, --block-size=1 以位元組位單位)
~/tmp$ du --apparent-size --block-size=1 abc.txt
4 abc.txt
# 占用磁碟空間4096位元組, 這個結果跟磁碟格式密切相關
~/tmp$ du --block-size=1 abc.txt
4096 abc.txt
2. 符號連結(symbolic links 或 soft links 或 symlinks)的問題
# 這裡有個指向剛才那個檔案的符號連結
~/tmp$ ls -nl link_abc.txt
lrwxrwxrwx 1 1000 1000 7 Jan 28 18:34 link_abc.txt -> abc.txt
# 符號連結本身不佔用"普通的"磁碟空間, 就像一個空檔案一樣.
~/tmp$ du --block-size=1 link_abc.txt
0 link_abc.txt
# 不過內容大小還是有的, 實際上是 "abc.txt" 共7個字元.
~/tmp$ du --apparent-size --block-size=1 link_abc.txt
7 link_abc.txt
~/tmp$
# 另外要檢視指向的檔案的大小的話應該這樣 (跟最開始一樣)
~/tmp$ du --apparent-size --block-size=1 -L link_abc.txt
4 link_abc.txt
3. 隱藏檔案的問題
英文句點"."開頭的檔案 或者 波浪號"~"結尾的檔案屬於隱藏檔案.
~/tmp$ ls
abc.txt link_abc.txt
~/tmp$ ls -A
abc.txt link_abc.txt .xxx
(不過好像對於 ls 命令來說 "*~" 不屬於隱藏檔案)
4.資料夾本身佔用空間的問題
# du 是要算上資料夾本身大小的
~/tmp$ du --exclude='.*' --exclude='*~' --apparent-size -s -b -D ~/tmp
4107 /home/xyy/tmp
# 系統檔案管理 沒算上(右鍵屬性)
Gnome 預設的檔案管理器 nautilus 統計檔案大小的時候忽略隱藏檔案(對應du --exclude='.*' --exclude='*~'), 會跟入一層符號連結(對應 du -D), 顯示檔案內容大小(而不是磁碟佔用), 並以1000進位(du -b).
最後合起來就是
du --exclude='.*' --exclude='*~' -b -D -s 你的檔案或資料夾
最後合起來就是
du --exclude='.*' --exclude='*~' -b -D -s 你的檔案或資料夾
本文永久更新連結地址:http://www.linuxidc.com/Linux/2016-06/132708.htm
相關文章