@Asker1888

Почему создание жесткой ссылки (ln) увеличивает занимаемую память?

Здравствуйте! Вопрос по команде ln для создания жесткой ссылки на файл.
Прочитав информацию о файлах, инодах, жеских и символических ссылках на файлы, я сделал вывод, что:
1. Файл занимает определенное кол-во памяти на диске;
2. У каждого файла есть уникальный для системы инод, который указывает на область памяти, где лежат данные файла;
3. При выполнении команды `ln file1 file2` второй файл по сути являет указателем на ту же самую область памяти. что и file1. Т.е. работа в них идет под разными именами, но переписывается одна и та же область памяти.
При этом, если посмотреть на вес директории, в которой была создана жесткая ссылка на файл в этой же директории, то можно увидеть, что вес возрос ровно на вес линкованного файла.
Если область памяти одна и та же, и работа идет с одними и теми же битами, то почему занимается дополнительная память?
  • Вопрос задан
  • 207 просмотров
Решения вопроса 1
@ComodoHacker
А как вы смотрите "на вес директории"?

Если командой ls, то ее задача вывести имена, размеры и прочие атрибуты файлов, не разбираясь, как файлы хранятся физически. И свою задачу ls выполняет хорошо.

Если вы хотите учесть все нюансы со ссылками, используйте команду du. У нее есть ключи, определяющие, как считать занимаемое место.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Rozello
Вероятнее всего там не никакой магии.
Просто файловый менеджер итерирует файлы имеющиеся в директории, извлекает для каждого размер файла и далее складывает получившиеся значения.
Если в файловый менеджер не зашита отдельная логика обрабатывающая ссылки, то он будет каждую ссылку считать отдельным файлом и соответственно преувеличивать суммарный размер файлов.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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