Разве softlinks и hardlinks несколько связаны с изменяемыми и неизменными объектами (в Java) в каком-либо смысле?

При чтении о Linux я получил следующее:

Предположим, что file1 уже существует. Жесткая ссылка, названная file2, создается с командой:

$ ln file1 file2

Обратите внимание, что два файла теперь, кажется, существуют. Однако более близкий контроль списка файлов показывает, что это не совсем верно.

$ ls - литий file1 file2

-i опция к ls распечатывает в первом столбце inode число, которое является уникальным количеством для каждого объекта файла. Это поле является тем же для обоих из этих файлов; что действительно продолжается, вот то, что это - только один файл, но это имеет больше чем одно имя, связанное с ним, как обозначается 3, который появляется в выводе ls. Таким образом уже был другой объект, связанный с file1, прежде чем команда выполнялась.

Жесткие ссылки очень полезны, и они оставляют свободное место, но необходимо быть осторожными с их использованием, иногда тонкими способами. С одной стороны, при удалении или file1 или file2 в примере на предыдущем экране объект inode (и остающееся имя файла) останется, который мог бы быть нежелательным, поскольку это может привести к тонким ошибкам позже при воссоздании файла того имени.

Я не получаю понятие объекта файла как указано выше, поскольку UNIX был сделан просто в C (исправьте меня, Если я неправ). Действительно ли это несколько подобно изменяемым и неизменным классам в Java?

0
задан 9 March 2019 в 14:20

1 ответ

Нет, но жесткие ссылки работают точно ссылками на объект в Java. Можно скопировать ссылку на любое количество переменных, оно не копирует объект. Можно очистить эти переменные или удалить их, но объект будет очищен только, когда последняя ссылка будет очищена (не созданное последнее).

Жесткие ссылки являются тем же: они - ссылка на реальный объект файла, или другими словами записи каталога. Создание жесткой ссылки создает другую ссылку на объект файла в другом каталоге. Когда Вы rm файл где-нибудь, это не уничтожает объект файла, если другая ссылка (inode) к нему существует где-то в другом месте.

Они отличаются от гибких ссылок (ярлыки), потому что удаление ярлыка никогда не стирает файл.

1
ответ дан 6 October 2019 в 18:16

Другие вопросы по тегам:

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