Учитывая эту последовательность команд…
$ 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 752 КБ после того, как два явно разных файла жестко связаны друг с другом? Я ожидал /data/backup/rsnapshot/daily.3/ruminant теперь будет на 6728 тыс. меньше.
файловая система ext3 смонтирована в /резервное копирование данных, Linux Debian сжатый хост.
Я проверил с lsof | grep deleted
что ни один из файлов не поддерживается каким-либо процессом.
daily.2/ruminant
может по-прежнему содержать ссылки на один и тот же индексный дескриптор (13344429), поэтому общий размер не уменьшился, поскольку пространство все еще выделено и используется в этом каталоге.
Пара связанных моментов:
а) Если бы вы только бежали du -sk daily.3/ruminant
тогда вы, вероятно, увидите сокращение общего количества, поскольку (предположительно) больше нет ссылок на этот индекс в daily.3
каталог.
б) du
считает inodes по мере их поступления в порядке аргументов, поэтому в первой распечатке он назначил использование inode 13344429 для daily.2
скорее, чем daily.3
. Поэтому удаление ссылки из daily.3
(и оставив это в daily.2
) не приведет к уменьшению пространства при подсчете обоих daily.{2,3}
поскольку это все еще учитывается daily.2
.