du считает жесткие ссылки только один раз, но жесткие ссылки имеют тот же размер, что и первая жесткая ссылка?

Вы можете проверить код ошибки команды gunzip, которая не распаковывается.

echo $?

Это может дать вам ключ к разгадке провала.

Также может помочь получение шестнадцатеричных дампов двух файлов и их сравнение.

0
29.12.2020, 13:04
2 ответа

Я думаю, вы неправильно понимаете концепцию жесткой ссылки.
Файл[имя] — это указатель на индексный дескриптор, жесткая ссылка точно такая же. Ссылки на исходный файл нет.

duне может знать, был ли файл создан как жесткая ссылка из другого файла. duможет фильтровать, только если несколько указателей на inode появляются в одном duвызове:

du -sh dir1 dir2
1
18.03.2021, 22:40

Вы плохо -понимаете жесткие ссылки.

Первое, на что следует обратить внимание, это то, что такой вещи не существует, или что каждый файл [имя] является жесткой ссылкой.

Да, верно,для жестких ссылок -нет специальной структуры. Итак, какие они.

У каждого файла есть индексный дескриптор. Индекс указывает на содержимое и на метаданные -данные :файл -режим, размер, даты и т. д.

Затем идут имена файлов -. Каждое имя файла -указывает ровно на один индексный дескриптор. Каждый inode может иметь от нуля до множества имен файлов -, указывающих на него. (Каждый inode может иметь от нуля до множества открытых файлов -дескрипторов (, принадлежащих процессам ), указывающим на него ). Если нет ни одного имени файла -и ни одного дескриптора файла -, указывающего на индексный дескриптор, то выполняется сборка мусора.

Нет записей о том, в каком порядке были созданы эти имена файлов -, дескрипторы файлов -. Поэтому нельзя сказать, что это жесткая -ссылка, а эта — оригинал. Это различие существует только в момент творения. После этого неразличимы.

0
18.03.2021, 22:40

Теги

Похожие вопросы