Linux

為什麼硬連結文件後磁碟使用量沒有減少 6,728k?

  • November 30, 2015

鑑於此命令序列…

$ 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

引用自:https://serverfault.com/questions/739798