给定以下命令序列……
$ 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 文件系统挂载在/数据备份,Linux Debian 挤压主机。
我已经检查过lsof | grep deleted
,这两个文件都没有被某个进程打开。
答案1
daily.2/ruminant
可能仍然包含指向相同 inode(13344429)的链接,因此总大小并未减少,因为该目录中仍然分配有空间且在使用中。
几个相关点:
a) 如果您只运行,du -sk daily.3/ruminant
那么您可能会看到总数的减少,因为(大概)目录中不再有指向该 inode 的链接daily.3
。
b)du
按参数顺序计算 inode 数量,因此在第一个打印输出中,它将 inode 13344429 的使用权分配给daily.2
而不是daily.3
。因此,从 中删除链接daily.3
(并将其保留在 中daily.2
)不会导致在计算两者时空间减少,daily.{2,3}
因为它仍然计入 中daily.2
。