Команды 'ln' и 'rm' работали точно так же в каждой файловой системе UNIX с начала 1970-х годов. Mac OSX, BSD и Linux все наследуют этот оригинальный дизайн.
Сам по себе файл UNIX не имеет имени, только номер инода или inum. Но вы можете получить к нему доступ только через запись в специальном файле «directory», который связывает имя с рассматриваемым inum; Вы не можете указать Inum напрямую.
Каталог сам по себе является файлом, поэтому вы также должны обращаться к нему через (другой) каталог и т. Д. Через серию имен каталогов, разделенных прямой косой чертой (/), известной как «имя пути». Путь начинается в «текущем рабочем каталоге» процесса, если только имя не начинается с «/», в этом случае он начинается с корневого каталога файловой системы. Например, если имя пути не содержит символов "/", то ожидается, что это будет запись в текущем каталоге.
Файл без каталога может иметь любое количество имен путей, известных как «жесткие ссылки», и он будет существовать до тех пор, пока все его пути не будут удалены, и последний процесс не закроет файл. Затем файл фактически удаляется, а его пространство помечается как доступное для повторного использования. То есть вы можете создать () или открыть () односвязный файл, а затем отсоединить () его, чтобы он больше не появлялся в пространстве имен файловой системы, но файл будет существовать до тех пор, пока вы его не закроете. Это полезно для временных файлов, которые не будут прочитаны какой-либо другой программой.
Хотя каталоги имеют номера инодов, большинство файловых систем не допускают жестких ссылок на них; они могут появляться только в одном другом каталоге. (Одним необычным исключением является файловая система Mac OSX HFS +; это позволяет работать резервным копиям Time Machine.) Вы по-прежнему можете создавать «мягкие ссылки» на каталоги (или любой другой файл). Мягкая ссылка напоминает запись каталога, за исключением того, что она содержит другое имя пути, а не inum.
Каждый файл UNIX имеет владельца, группу и права доступа. Необходимо, но не достаточно, чтобы они позволили вам открыть файл; Вы также должны иметь как минимум разрешение на выполнение для каждого каталога в пути, который вы используете для ссылки на него. Вот почему нет стандартного способа открыть файл UNIX по номеру его индекса; это обойдёт важный, широко используемый механизм безопасности.
Но это не объясняет, почему не может быть стандартного способа для корневого (привилегированного) пользователя открыть файл по номеру инода, так как проверка разрешений в любом случае обходится. Это было бы очень полезно для определенных функций управления системой, таких как резервное копирование. Насколько мне известно, такие механизмы существуют, но все они зависят от файловой системы; не существует общего способа сделать это для любой файловой системы UNIX.