2012-10-06 20 views
0

我在一個文件夾中有幾個未完成的torrent文件。在HFS文件系統上,du命令返回文件的大小,就好像它沒有插入文件一樣。如何計算帶孔文件的稀疏性?

你如何計算空塊與實際數據塊之間的比率?到目前爲止,我通過將文件的快速gzip壓縮版本的大小除以表觀大小來實現此目的。

我不是在寫應用程序。我試圖找到通過傳輸創建的文件(一個bittorent客戶端)不完整。

+0

根據文件系統來跟蹤你的漏洞似乎是糟糕的應用程序設計,因爲你的數據傳輸塊可能不完全符合文件系統組織文件頁面的方式。你的洪流應用程序應該跟蹤它在一個單獨的文件中收到的塊。 – Barmar

+0

我不是在寫應用程序。我試圖找到通過傳輸創建的文件(一個bittorent客戶端)不完整。 – alecail

+0

由於這不是一個與編程有關的問題,它不屬於這裏,而是在[超級用戶](http://superuser.com/)上。主持人可能會遷移它。 – lanzz

回答

1

ls -ksl filename將在第一列中顯示實際分配的磁盤空間,千字節(不是字節)。稀疏文件的分配空間將小於文件的實際大小,的分配大小大於或等於而不是保證文件已完全下載,只是文件的每個塊都有寫到的東西。要驗證文件是否已完全下載,您應該驗證.torrent文件中的校驗和,一些命令行洪流客戶端可以爲您做這些校驗和(例如ctorrent -c,可從Homebrew或MacPorts獲得)。

+0

對於由Tranmission創建的文件,-s標誌不起作用。這些文件總是看起來像分配了所有的塊。但是我不知道是因爲HFS還是傳輸。 – alecail

+0

這不是因爲HFS,因爲我用HFS分區上的實際稀疏文件測試了我的答案。顯然你的文件並不稀疏。 – lanzz

+0

+1,這是可靠的方法來做到這一點。 –