ls與du的問題 - Linux

Table of Contents


各位好

今天小弟在CentOS上使用了virt-machine 建立了一個image

(有勾選一個選項 是不allocate全部的file size)

這個image size的大小使用du和ls看的並不相同

ls 的大小是在建立image的時候 所設定的,如設定20GB, ls所出現的size會約20GB

但是使用du看的話,真正的size是約6~7GB


不過真正在傳輸檔案的時候,仍然會是20GB的這個size (所以傳送的時間還是很久…)

不知道有沒有什麼辦法可以把真正有使用到的那些資料取出來呢

(雖然ls是20GB的檔案,取出來的是6GB的檔案這樣)


不過小弟也想偷偷問一下 du和ls為什麼顯示出來的size會不相同…

謝謝各位版大 <(_ _)>


--

All Comments

Isla avatarIsla2011-05-25
du 是 disk usage of each FILE
Hedwig avatarHedwig2011-05-27
ls 可以用 --block-size 或 -k 來看
Ethan avatarEthan2011-05-28
應該是 image 中的 / 和 swap 兩個partition的hole造成
google lseek hole
Kama avatarKama2011-05-29
忘了第1個問題.先gzip傳檔後gunzip,或許可以快一點.
Zora avatarZora2011-05-31
哦~ 原來不是我想的那麼簡單啊~ sorry ~
Victoria avatarVictoria2011-06-03
今天我有試過要壓縮這個file,不過是使用tar 壓了半個多
小時 就放棄了 QQ
Charlotte avatarCharlotte2011-06-04
你傳檔用什麼協定? LAN or Internet?
Leila avatarLeila2011-06-08
rsync好像有compress
Irma avatarIrma2011-06-11
傳檔是使用WinSCP 直接連到那台機器上抓下來 是LAN
Leila avatarLeila2011-06-14
ssh就算是0000000000也是要加密的啊~
Kelly avatarKelly2011-06-16
目前我有找到好像是 sparse file的關係 明天我再來解看看
如果有找到原因和解法的話,再向大家回報 <(_ _)>
Eden avatarEden2011-06-21
是sparse file沒錯啊, 都是0的地方實際上沒存起來
George avatarGeorge2011-06-23
以下方法我自己沒試過,假設你Windows是用NTFS,可以下載
Emma avatarEmma2011-06-24
(sourceforge的) win32 rsync, 用 -S 參數, 或許有效