Порт LAN не работает

Я думаю, вас смущает слово «ссылка» в «hardlink» / «softlink». Несмотря на кажущуюся симметрию имен, это совершенно разные вещи.

Soft links: Если вы исходите из какого-то фона Microsoft, возможно, было бы легче сказать, что: softlink довольно близок к тому, что является ярлыком. Это (почти) обычный файл, имеющий в нем имя пути. Единственная разница в Unix, ОС имеет некоторое волшебство для перенаправления приложений автоматически. А именно, когда файл приложения open() sa, ОС проверяет флаг режима S_IFLNK в файле - если он установлен, это означает, что он содержит только путь к другому файлу, и ОС будет прозрачно перенаправлять вызов на этот путь. Жесткие ссылки: жесткая ссылка - это просто технический термин для имени файла. Когда вы создаете жесткую ссылку, вы просто добавляете второе имя для того же файла. Весь рабочий процесс выглядит примерно так: при создании файла он автоматически получает первое имя файла. Если хотите, вы можете добавить дополнительные имена файлов. Вы действительно не можете удалять файлы в Unix. Команда rm удаляет только имя файла. Это гораздо более очевидно, когда вы знаете, что фактическая операция, которую он выполняет, называется unlink() ing. Когда файл больше не имеет имени файла, он удаляется. (*) В качестве побочного кода в каталогах всегда есть как минимум два имени файла: один в своем родителе и один сам по себе (.). Кроме того, если каталог имеет подкаталоги, он будет иметь дополнительную жесткую ссылку в каждом подкаталоге с именем ... Вы можете увидеть количество имени файла / hardlink, выполнив ls -l. Второй столбец на выходе.

(*): если какой-то процесс использует файл, удаление откладывается до тех пор, пока оно больше не будет использоваться. Тем временем у вас есть файл без имени, которое вы не видите или не получаете.

0
задан 27 April 2018 в 21:04

0 ответов

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

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