Linux
為什麼硬連結文件後磁碟使用量沒有減少 6,728k?
鑑於此命令序列…
$ pwd /data/backup/rsnapshot $ sudo du -csk daily.{2,3}/ruminant 1195040 daily.2/ruminant 36712 daily.3/ruminant 1231752 total $ ls -isk /data/backup/rsnapshot/daily.3/ruminant/home/andy/vmunix \ /data/backup/rsnapshot/daily.3/ruminant/home/andy/vmlinux2 13344429 6728 /data/backup/rsnapshot/daily.3/ruminant/home/andy/vmlinux2 16476851 6728 /data/backup/rsnapshot/daily.3/ruminant/home/andy/vmunix $ sudo ln -f /data/backup/rsnapshot/daily.3/ruminant/home/andy/vmunix \ /data/backup/rsnapshot/daily.3/ruminant/home/andy/vmlinux2 $ ls -isk /data/backup/rsnapshot/daily.3/ruminant/home/andy/vmunix \ /data/backup/rsnapshot/daily.3/ruminant/home/andy/vmlinux2 16476851 6728 /data/backup/rsnapshot/daily.3/ruminant/home/andy/vmlinux2 16476851 6728 /data/backup/rsnapshot/daily.3/ruminant/home/andy/vmunix $ sudo du -csk daily.{2,3}/ruminant 1195040 daily.2/ruminant 36712 daily.3/ruminant 1231752 total
…為什麼在兩個明顯不同的文件硬連結在一起後,這兩個目錄的使用量仍然保持在 1,231,752k?我原本預計**/data/backup/rsnapshot/daily.3/ruminant**現在會小 6,728k。
ext3 文件系統安裝在**/data/backup**,Linux Debian 擠壓主機。
我已經檢查過
lsof | grep deleted
這兩個文件都沒有被某個程序打開。
daily.2/ruminant
可能仍包含指向同一 inode (13344429) 的連結,因此總大小並未下降,因為該目錄中仍在分配和使用空間。幾個相關的點:
a) 如果您只執行,
du -sk daily.3/ruminant
那麼您可能會看到總數減少,因為(可能)daily.3
目錄中沒有更多指向該 inode 的連結。b)
du
按參數順序計算 inode,因此在第一個列印輸出中,它將 inode 13344429 的用法分配給daily.2
而不是daily.3
。因此,從 中刪除連結daily.3
(並將其保留在 中daily.2
)在計算兩者時不會導致任何空間減少,daily.{2,3}
因為它仍然被計算在 中daily.2
。