關於右鍵屬性與du -sh顯示的文件大小不一致的解決
關於右鍵屬性與du -sh顯示的文件大小不一致的解決
du -sh filename(其實我們經常用du -sh *,顯示當前目錄下所有的文件及其大小,如果要排序再在後面加上 | sort -n)
關於右鍵屬性與du -sh顯示的文件大小不一致的解決:
總之:我的理解就是du查到的是實際硬盤上的block大小,包括很多隱藏文件,軟,硬鏈接,以及由於磁盤格式劃分等等的問題,導致了不一致,
右鍵屬性相當於
du --exclude='.*' --exclude='*~' -b -D -s 你的文件或文件夾 及除開那些多余的東西。
而du -sh 則是全部顯示了出來,所以,他顯示的要大。
(百度到的,我認為合理)
這裡有幾方面的問題, 導致有好幾種計算文件大小方法.
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 ~/tmp4107 /home/xyy/tmp# 系統文件管理 沒算上(右鍵屬性)
Gnome 默認的文件管理器 nautilus 統計文件大小的時候忽略隱藏文件(對應du --exclude='.*' --exclude='*~'), 會跟入一層符號鏈接(對應 du -D), 顯示文件內容大小(而不是磁盤占用), 並以1000進位(du -b).最後合起來就是du --exclude='.*' --exclude='*~' -b -D -s 你的文件或文件夾
本文永久更新鏈接地址:
http://xxxxxx/Linuxjc/1141003.html TechArticle