爲什麼du
的輸出經常和du -b
有差別? -b
是--apparent-size --block-size=1
的簡寫。大多數情況下只使用--apparent-size
可以獲得相同的結果,但--block-size=1
似乎可以解決問題。我想知道輸出是否正確,哪些數字是我想要的? (即,實際文件大小,如果複製到另一個存儲設備)爲什麼`du`的輸出經常與`du -b`差異很大
回答
外觀尺寸是您的應用程序認爲是文件中的字節數。如果您決定通過FTP或HTTP發送文件,則會通過網絡傳輸的數據量(不包括協議標題)。這也是cat theFile | wc -c
的結果,以及如果使用mmap
加載整個文件,文件佔用的地址空間量。
磁盤使用情況是由於文件佔用該空間而無法用於其他內容的空間量。
在大多數情況下,外觀尺寸小於磁盤使用量,因爲磁盤使用量計算文件最後(部分)塊的全部大小,並且外觀尺寸只計數最後一個塊中的數據。然而,當你有一個稀疏文件時,表面大小會變得更大(當你尋找文件末尾的某處時會創建稀疏文件,然後在那裏寫一些東西 - 操作系統並不打算創建大量充滿零的塊 - - 它只爲您決定寫入的文件部分創建一個塊)。
謝謝!這是一個徹底的解釋。那麼爲什麼我需要讓'--block-size = 1'具有與'wc -c theFile'相同的輸出(保存cat進程)。看起來像'du'只輸出正確的字節數,當我指定-h,-k,-m,-B1等時?但也許這是另一個問題? 'du'默認輸出塊的使用情況,而不是字節的使用情況? – knittl 2011-04-17 16:57:14
@ knittl:我不知道。 – 2011-04-17 19:00:55
很好的解釋,但不會談論問題中存在的'--block-size = 1' - -1。 – 2017-02-17 18:41:20
因爲默認情況下,du提供的磁盤使用率與文件大小相同或更大。由於根據--apparent大小說
print apparent sizes, rather than disk usage; although the apparent size is usually smaller, it may be
larger due to holes in (`sparse') files, internal fragmentation, indirect blocks, and the like
那麼究竟是什麼'表觀大小'呢?和我完全相反:外觀尺寸幾乎總是比磁盤使用量高出幾個量級 – knittl 2011-04-17 16:34:07
比較(例如)du -bm
到du -m
。
的-b
套--apparent-size --block-size=1
, 但隨後m
覆蓋塊大小是1M
。
-bh
爲與-h
類似: 的-bh
裝置--apparent-size --block-size=1 --human-readable
,並再次h
重寫該塊大小。
文件和文件夾有其真實大小和磁盤大小
--apparent尺寸是文件或文件夾的實際尺寸
磁盤上的大小是字節數的文件或文件夾在磁盤上。使用時只需杜
如果遇到明顯的大小几乎總是比磁盤使用率較高的幾個數量級 同樣的事情,那麼就意味着你有很多的文件('疏')文件與內部碎片或間接塊。
- 1. 差異和du
- 2. xargs du -h做什麼?
- 3. 功能中的DD和DU異常
- 4. 與nftw的目錄的總大小不同於du輸出
- 5. du命令和Python函數之間的文件大小差異
- 6. du怎麼逃脫?
- 7. 爲什麼java中的File.length()的大小與linux du命令的大小不同
- 8. du --zip myFile.zip?
- 9. 使用BASH,如何使用「du -ch」只輸出總體大小?
- 10. du linux命令大小大於df
- 11. DU案例名稱
- 12. 爲什麼argc的輸出有差異?
- 13. 爲什麼du或echo流水線不工作?
- 14. 運行ls -l時,爲什麼目錄上的文件大小不符合du的輸出?
- 15. du命令爲什麼顯示不正確的結果
- 16. F#支持DU的Json.NET
- 17. du如何評估文件大小?
- 18. 爲什麼這種輸出差異?
- 19. 從bash腳本中刪除du輸出的文件部分
- 20. 「du -sh」權限被拒絕
- 21. 使用管道du來計算標準輸入的「大小」
- 22. Bash別名du-sh +排序
- 23. 爲什麼在發送h標誌時du命令顯示雙倍大小?
- 24. linux du命令源代碼
- 25. 爲什麼有A = A +之間的差異B和A + = B
- 26. Mac OS X上的「du」命令和「get info」顯示的尺寸差異
- 27. 爲什麼同樣算法的運行時差異很大?
- 28. 如何對du -h輸出進行排序?
- 29. Linux du目錄大小,這怎麼可能?
- 30. 在Mac OS 10.6上獲得排序的,可讀的du輸出的最有效方法是什麼?
爲什麼downvote?這看起來像一個非常好的問題。請有禮貌地發表評論,如果你想減少問題或答案,以便每個人都可以學到一些東西。匿名downvote是一個潛在的教學時刻扔掉。 – 2011-04-17 16:38:52
@Pete:可能是因爲這是關於StackOverflow的主題。我希望有更多的高聲譽用戶會注意到。 – 2011-04-17 20:41:55