stringtranslate.com

Символическая ссылка

В вычислениях символическая ссылка (также символическая ссылка или мягкая ссылка ) — это файл, цель которого — указать на файл или каталог (называемый «цель») путем указания пути к нему. [1]

Символические ссылки поддерживаются POSIX и большинством Unix-подобных операционных систем , таких как FreeBSD , Linux и macOS . Ограниченная поддержка также существует в Windows 7 и Windows Vista и в некоторой степени в Windows 2000 и Windows XP в виде файлов ярлыков. В 1963 году в CTSS на IBM 7090 файлы были связаны по имени. [2] [3] [4] К 1978 году операционные системы для мини-компьютеров от DEC и RDOS от Data General включали символические ссылки.

Обзор

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

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

Символические ссылки работают прозрачно для многих операций: программы, которые читают или записывают файлы, названные символической ссылкой, будут вести себя так, как если бы они работали непосредственно с целевым файлом. Однако они приводят к изменению иерархической файловой системы из дерева в ориентированный граф, что может иметь последствия для таких простых операций, как определение текущего каталога процесса. Даже стандарт Unix для перехода к родительскому каталогу каталога больше не работает надежно при наличии символических ссылок. Некоторые оболочки эвристически пытаются поддерживать иллюзию древовидной иерархии, но когда они это делают, это приводит к тому, что они выдают результаты, отличные от результатов других программ, которые манипулируют путями без такой эвристики, полагаясь вместо этого на операционную систему. [5] Программы, которым необходимо специально обрабатывать символические ссылки (например, оболочки и утилиты резервного копирования), поэтому должны идентифицировать их и манипулировать ими напрямую.

Некоторые дистрибутивы Unix и Linux широко используют символические ссылки, пытаясь изменить порядок иерархии файловой системы. Это достигается с помощью нескольких механизмов, таких как варианты контекстно-зависимых символических ссылок. Это дает возможность создать более интуитивное или специфичное для приложения дерево каталогов и реорганизовать систему без необходимости перепроектирования основного набора системных функций и утилит.

POSIX и Unix-подобные операционные системы.

В POSIX -совместимых операционных системах символические ссылки создаются с помощью системного вызова symlink[6] . Команда оболочки lnобычно использует системный вызов link[7] , который создает жесткую ссылку . Если флаг указан, вместо него используется системный вызов symlink(), создающий символическую ссылку. Символические ссылки были представлены в 1982 году в версии 4.1a BSD Unix от Калифорнийского университета в Беркли . [8]ln -s

Следующая команда создает символическую ссылку в интерфейсе командной строки (оболочке):

ln -s целевой_путь путь_ссылки

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

После создания символической ссылки можно использовать некоторые операции, чтобы рассматривать ее как псевдоним цели. Однако операции lstat, [9], lchown[10] и readlink[11] уникальны для символических ссылок и не применяются к цели; используя эти системные вызовы, программы, проверяющие файловую систему (например, ls, find), могут сообщать о символических ссылках (вместо их целей, если таковые имеются). Поскольку системные вызовы renameи unlinkзапрограммированы для работы непосредственно с символическими ссылками, команды управления файловой системой (например, rm, mv) влияют на саму символическую ссылку (вместо того, чтобы применяться к цели символической ссылки, если таковая имеется). Команда rm(удалить файл) удаляет саму ссылку, а не целевой файл. Аналогично, mvкоманда перемещает или переименовывает ссылку, а не цель. У команды cpесть параметры, позволяющие копировать либо символическую ссылку, либо цель. Команды, которые читают или записывают содержимое файла, будут получать доступ к содержимому целевого файла.

Приложение списка каталогов POSIX, ls, обозначает символические ссылки стрелкой после имени, указывающей на имя целевого файла (см. следующий пример), когда запрашивается длинный список каталогов ( -lопция). Когда запрашивается список каталогов с символической ссылкой, указывающей на каталог, будет отображаться только сама ссылка. Чтобы получить список связанного каталога, путь должен включать в себя завершающий символ-разделитель каталогов ('/', косая черта).

Примечание. В приведенном ниже примере не создавайте каталог «три» перед созданием ссылки в каталоге /tmp.

$ mkdir  -p  /tmp/one/two $ echo "test_a" >/tmp/one/two/a $ echo "test_b" >/tmp/one/two/b $ cd /tmp/one/two $ ls -l -rw-r--r-- 1 группа пользователей 7 янв 01 10:01 a -rw-r--r-- 1 группа пользователей 7 янв 01 10:01 b      $ cd  /tmp $ ln  -s  /tmp/one/two  Three $ ls  -l  Three lrwxrwxrwx 1 группа пользователей 12 июля 22 10:02 /tmp/three -> /tmp/one/two $ ls  -l  Three/ -rw -r--r-- 1 группа пользователей 7 янв 01 10:01 a -rw-r--r-- 1 группа пользователей 7 янв 01 10:01 b$ cd  Three $ ls  -l -rw-r--r-- 1 группа пользователей 7 1 января 10:01 a -rw-r--r-- 1 группа пользователей 7 01 января 10:01 b $ cat  a test_a $ cat  /tmp/one/two/a test_a $ echo "test_c" >/tmp/one/two/a $ cat /tmp/one/two/a test_c $ cat a test_c    

Хранение символических ссылок

Ранние реализации символических ссылок хранили информацию о символических ссылках в виде данных в обычных файлах. Файл содержал текстовую ссылку на цель ссылки, а биты режима файла указывали, что тип файла является символической ссылкой.

Этот метод был медленным и неэффективным в использовании дискового пространства в небольших системах. Улучшение, называемое быстрыми символическими ссылками , позволило хранить целевой путь в структурах данных , используемых для хранения информации о файле на диске ( inodes ). В этом пространстве обычно хранится список адресов дисковых блоков , выделенных для файла. Таким образом, доступ к символическим ссылкам с короткими целевыми путями осуществляется быстро. Системы с быстрыми символическими ссылками часто возвращаются к использованию исходного метода, если целевой путь превышает доступное пространство inode. Исходный стиль задним числом называется медленной символической ссылкой . Он также используется для совместимости диска с другими или более старыми версиями операционных систем.

Хотя хранение значения ссылки внутри индексного дескриптора экономит дисковый блок и чтение с диска, операционной системе все равно необходимо анализировать имя пути в ссылке, что всегда требует чтения дополнительных индексных дескрипторов и обычно требует чтения других и, возможно, многих каталогов, обработки как список файлов, так и индексные дескрипторы каждого из них, пока не будет найдено совпадение с компонентами пути ссылки. Только когда ссылка указывает на файл в том же каталоге, «быстрые символические ссылки» обеспечивают значительно лучшую производительность, чем другие символические ссылки.

Подавляющее большинство POSIX-совместимых реализаций используют быстрые символические ссылки. Однако стандарт POSIX не требует реализации всего набора информации о состоянии файлов, общей для обычных файлов, для символических ссылок. Это позволяет реализациям использовать другие решения, такие как хранение данных символических ссылок в записях каталога.

Разрешения файловой системы символической ссылки не используются; режимы доступа к целевому файлу контролируются собственными разрешениями целевого файла. Некоторые операционные системы, такие как FreeBSD, предлагают возможность изменять права доступа к файлам и атрибуты файловой системы символической ссылки с помощью системных вызовов lchmod[12] и lchflags[13] соответственно.

Сообщаемый размер символической ссылки — это количество символов в пути, на который она указывает.

Обработка ошибок

Традиционная файловая система Unix имеет древовидную структуру, [14] однако символические ссылки позволяют ей содержать циклы. [5]

Майкрософт Виндоус

Символическая ссылка NTFS

В NTFS 3.1 появилась поддержка символических ссылок для файлов любого типа. Он был включен в состав Windows XP , но по умолчанию был включен только для приложений режима ядра. Windows Vista и более поздние версии Windows включили поддержку символических ссылок на приложения пользовательского режима. Внутренняя mklinkкоманда командной строки Windows может создавать символические ссылки. Драйверы сторонних производителей необходимы для включения поддержки символических ссылок NTFS в Windows XP. [15] В отличие от точек соединения , символическая ссылка может также указывать на файл или сетевой путь к удаленному блоку сообщений сервера (SMB). Кроме того, реализация символических ссылок NTFS обеспечивает полную поддержку межфайловых ссылок. Однако функциональность, обеспечивающая символические ссылки между хостами, требует, чтобы удаленная система также поддерживала их.

Символические ссылки предназначены для облегчения миграции и совместимости приложений с операционными системами POSIX . Microsoft стремилась к тому, чтобы символические ссылки Windows Vista «функционировали так же, как ссылки UNIX». [16] Однако реализация отличается от символических ссылок Unix по нескольким причинам. Например, пользователи Windows Vista должны вручную указывать при создании символической ссылки, является ли она файлом или каталогом. [17] Windows 7 и Vista поддерживают максимум 31 точку повторной обработки (и, следовательно, символические ссылки) для данного пути (т. е. любой заданный путь может иметь не более 31 косвенного направления, прежде чем Windows сдастся). [18] Только пользователи с новой привилегией «Создать символическую ссылку» , которая по умолчанию есть только у администраторов, могут создавать символические ссылки. [19] Если это нежелательное поведение, его необходимо изменить в консоли управления локальной политикой безопасности. Кроме того, символические ссылки NTFS на файлы отличаются от символических ссылок NTFS на каталоги и поэтому не могут использоваться взаимозаменяемо, в отличие от POSIX, где одна и та же символическая ссылка может ссылаться как на файлы, так и на каталоги.

В Windows Vista и более поздних версиях, когда путь к рабочему каталогу заканчивается символической ссылкой, текущая ссылка на родительский путь ..будет ссылаться на родительский каталог символической ссылки, а не на каталог ее цели. Такое поведение также встречается на уровне оболочки, по крайней мере, в некоторых системах POSIX, включая Linux , но никогда при доступе к файлам и каталогам посредством вызовов операционной системы. Например, встроенные команды bash pwdи cdработают с текущим логическим каталогом. pwdчасто используется в сценариях для определения фактического текущего рабочего каталога. Когда любой путь используется с системным вызовом, любое использование ..будет использовать фактическую родительскую файловую систему каталога, содержащего ..запись псевдокаталога. А значит, cd ..; cat somethingи cat ../somethingможет возвращать совершенно разные результаты.

Примеры

В следующих примерах создается символическая ссылка «Загрузки» на «E:», указывающая на папку «Загрузки» в профиле текущего пользователя.

mklink /D E:\Downloads %UserProfile%\Downloads
New-Item -Path 'E:\Downloads' -ItemType 'SymbolicLink' -Value "$Env:UserProfile\Downloads"

Точки соединения NTFS

Версия NTFS для Windows 2000 представила точки повторной обработки , которые, среди прочего, позволили использовать точки монтирования тома и точки соединения. Точки соединения предназначены только для каталогов, причем только для локальных каталогов; точки соединения с удаленными общими ресурсами не поддерживаются. [20] В комплекты ресурсов Windows 2000 и XP входит программа linkd для создания точек соединения; более мощный вариант под названием Junction распространял Марк Руссинович из Sysinternals .

Не все стандартные приложения поддерживают точки повторной обработки. Особенно заметно, что резервное копирование страдает от этой проблемы и выдает сообщение об ошибке 0x80070003 [21] , когда папки, подлежащие резервному копированию, содержат точку повторной обработки.

Ярлыки

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

Механизмы также имеют разные возможности:

Ярлыки папок

Почти как ярлыки, но прозрачны для оболочки Windows. [24] Они реализованы как обычные папки (которые должны иметь атрибут « только для чтения» и/или системный атрибут [25] ), содержащие ярлык с именем target.lnk , который ссылается на цель, и (скрытый) файл Desktop.ini с (по крайней мере ) следующее содержание:

 [.ShellClassInfo] CLSID2 = {0AFACED1-E828-11D1-9187-B532F1E9575D} 

Ярлыки папок создаются и используются, например, из оболочки Windows в сетевом окружении .

Объекты оболочки

Объекты оболочки [26] или папки оболочки определяются в реестре Windows и также могут использоваться для реализации своего рода символической ссылки. Как и ярлыки папок, они прозрачны для оболочки Windows.

Минимальная реализация (CLSID {00000000-0000-0000-0000-000000000000} используется в качестве заполнителя):

 [ HKEY_CLASSES_ROOT \CLSID\{00000000-0000-0000-0000-000000000000}] @ = "отображаемое имя" [ HKEY_CLASSES_ROOT \CLSID\{00000000-0000-0000-0000-000000000000}\DefaultIcon] @ = "..." ; путь к значку [ HKEY_CLASSES_ROOT \CLSID\{00000000-0000-0000-0000-000000000000}\InProcServer32] @ = "%SystemRoot%\\System32\\ShDocVw.Dll" "ThreadingModel" = "Апартамент" [ HKEY_CLASSES_ROOT \CLSID\{ 00000000-0000-0000-0000-000000000000}\Instance] "CLSID" = "{0AFACED1-E828-11D1-9187-B532F1E9575D}" [ HKEY_CLASSES_ROOT \CLSID\{00000000-0000-0000-0000 -000000000000}\Instance\InitPropertyBag ] «Атрибуты» = шестнадцатеричный : 15,00,00,00 «Цель» = «...» ; абсолютный (только БЕЗ «TargetKnownFolder» или «TargetSpecialFolder») ; или относительный путь к цели "TargetKnownFolder" = "{guidguid-guid-guid-guid-guidguidguid}" ; GUID целевой папки, Windows Vista и более поздние версии «TargetSpecialFolder» = «0x00xy» ; CSIDL цели [ HKEY_CLASSES_ROOT \CLSID\{00000000-0000-0000-0000-000000000000}\ShellFolder] «Атрибуты» = шестнадцатеричный : 00,00,00,00                

Папка «Мои документы» на рабочем столе , а также папки «Шрифты » и « Администрирование» на панели управления являются примерами объектов оболочки , перенаправленных в папки файловой системы.

Символические ссылки Cygwin

Cygwin имитирует POSIX-совместимые символические ссылки в файловой системе Microsoft Windows. Он использует идентичные программные и пользовательские интерфейсы утилит, что и Unix (см. выше), но создает ярлыки Windows (файлы .lnk) с дополнительной информацией, используемой Cygwin во время разрешения символических ссылок. Символические ссылки Cygwin соответствуют стандарту POSIX с точки зрения их разрешения, а также стандартам Windows с точки зрения их представления на диске.

Кроме того, Cygwin можно настроить для поддержки собственных символических ссылок Windows, которые можно использовать из Cygwin без ограничений. [27] Для этого необходимо:

  1. Изменение переменной среды CYGWIN, чтобы она содержала winsymlinks:native ;
  2. Запуск Cygwin с повышенными правами, поскольку Windows ограничивает создание символических ссылок привилегированными пользователями.

Однако существуют некоторые различия. Cygwin не имеет возможности указать информацию, связанную с ярлыком, например, рабочий каталог или значок, поскольку в команде нет места для таких параметров ln -s. Для создания стандартных файлов Microsoft .lnk Cygwin предоставляет утилиты mkshortcutи readshortcut. [28]

Руководство пользователя Cygwin содержит дополнительную информацию по этой теме. [27] MSYS2 , основанный на Cygwin, имеет аналогичный набор настроек winsymlinks , но по умолчанию копирует файлы. [29]

Сравнение символических ссылок POSIX и Windows

  1. ^ кроме случаев использования специальных инструментов
  2. ^ При сохранении становится абсолютным путем.
  3. ^ Поддерживается в Windows Vista и более поздних версиях. Реализация Windows не совместима с POSIX. Для их создания требуется привилегия «создать символическую ссылку» (SeCreateSymbolicLinkPrivilege). По умолчанию учетная запись пользователя имеет эту привилегию, если она является администратором или имеет включенный режим разработчика (Windows 10 v1703 и более поздние версии). [30]
  4. ^ POSIX разрешает жесткие ссылки на папки, но не требует их. Современные файловые системы, как правило, не поддерживают его.

Другие реализации

Реализация функций, аналогичных символическим ссылкам.

Ранний Массачусетский технологический институт

MIT -совместимая система разделения времени c.  1963 и Несовместимая система разделения времени имеют связанные файлы, в которых имя целевого файла указано в записи каталога. [2] [3] [4]

Амига

Команда создания символических ссылок — makelink, которая также используется для жестких ссылок. Внутри dos.library возвращает код ошибки, указывающий, что целью является программная ссылка, если вы пытаетесь выполнить над ней действия, которые разрешены только для файла, а приложения, которые хотят перейти по символической ссылке, затем должны явно выполнить вызов перейдите по ссылке и повторите операцию. Оболочка AmigaDOS автоматически переходит по ссылкам.

Mac ОС

В Mac OS приложения или пользователи также могут использовать псевдонимы , которые имеют дополнительную функцию отслеживания цели, даже если она перемещается в другое место на том же томе. Не следует путать его с псевдонимом команды оболочки .

ОС/2

В операционной системе OS/2 символические ссылки чем-то напоминают тени в графической оболочке Workplace Shell . Однако тени, благодаря полностью объектно-ориентированной модели системных объектов, значительно более мощны и надежны, чем простая ссылка. Например, тени не теряют своих возможностей при переименовании или при перемещении объекта или субъекта ссылки. [31]

Переменные символические ссылки

Символические ссылки могут быть реализованы контекстно-зависимым или переменным образом, так что ссылка указывает на различные цели в зависимости от параметра конфигурации, параметра времени выполнения или другого мгновенного состояния.

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

К операционным системам , использующим варианты символических ссылок, относятся NetBSD , DragonFly BSD , Domain/OS . [32] [33] [5] Tru64 использует контекстно-зависимую символическую ссылку , где контекстом является номер члена кластера.

Операционная система OSx компании Pyramid Technology реализовала условные символические ссылки , указывающие на разные места в зависимости от того, в какой юниверсе выполнялась программа. Поддерживаемые юниверсы: SysV.3 от AT&T и Berkeley Software Distribution (BSD 4.3). Например: если команда ps была запущена в юниверсе att , то символическая ссылка на каталог /bin будет указывать на /.attbin и программа /.attbin/ps будет выполнена. А если бы команда ps была запущена во вселенной ucb , то /bin указывал бы на /.ucbbin и /.ucbbin/ps был бы выполнен. Подобные условные символические ссылки были также созданы для других каталогов, таких как /lib , /usr/lib , /usr/include . [34]

Смотрите также

Рекомендации

  1. ^ Разрешение пути, POSIX .
  2. ^ Аб Уолден, Дэвид; Ван Флек, Том , ред. (2011). «Совместимая система разделения времени (1961–1973): обзор, посвященный пятидесятой годовщине» (PDF) . Компьютерное общество IEEE . Проверено 20 февраля 2022 г. По мере развития CTSS мы предоставляли пользователям возможность делиться своими файлами на диске посредством «общих файлов» и «связывания».
  3. ^ аб Крисман, Патрисия А., изд. (31 декабря 1969 г.). «Совместимая система разделения времени, Руководство программиста» (PDF) . Вычислительный центр Массачусетского технологического института . Проверено 10 марта 2022 г. Записи UFD, которые указывают на другие записи UFD, а не на сам файл.
  4. ^ аб Корбато, Ф.Дж .; Даггетт, ММ; Дейли, Р.К.; Кризи, Р.Дж.; Хеллвиг, доктор юридических наук; Оренштейн, Р.Х.; Корн, Л.К. (1963). «Совместимая система разделения времени. Руководство для программиста» (PDF) . Массачусетский технологический институт . Проверено 29 ноября 2022 г. Ссылка: Формат аналогичен Копии. Указанный файл не копируется
  5. ^ abc Пайк, Роб (2000). Лексические имена файлов в Plan 9 или правильное решение (PDF) . Учеб. USENIX Annual Tech. Конф.
  6. ^ символическая ссылка, символическая ссылка. IEEE Std 1003.1, издание 2013 г.
  7. ^ ссылка, ссылкакат. IEEE Std 1003.1, издание 2013 г.
  8. ^ Билл Джой ; Сэм Леффлер . «Выживание с 4.1a bsd» . Проверено 8 сентября 2023 г. Он также включает в себя несколько других функций, которые могут оказаться вам полезными, например символические ссылки и улучшенную схему групп.
  9. ^ fstatat, lstat, stat — получить статус файла IEEE Std 1003.1, 2013 Edition.
  10. ^ lchown — смена владельца и группы символической ссылки IEEE Std 1003.1, 2013 Edition.
  11. ^ readlink, readlinkat — прочитать содержимое символической ссылки IEEE Std 1003.1, 2013 Edition.
  12. ^ "lchmod (2)" . Страницы руководства для FreeBSD 11.
  13. ^ "lchflags(2)" . Страницы руководства для FreeBSD 11.
  14. ^ Ричи, DM ; Томпсон, К. (июль 1978 г.). «Система разделения времени UNIX». Белл Систем Тех. Дж . 57 (6): 1905–1929. CiteSeerX 10.1.1.112.595 . doi :10.1002/j.1538-7305.1978.tb02136.x. 
  15. ^ "Сайт расширения Link Shell" . Ссылка на сайт расширения Shell .
  16. ^ Символические ссылки, Библиотека MSDN, Разработка Win32 и COM, 18 января 2008 г.
  17. ^ «Функция CreateSymbolicLinkA (winbase.h)» . MSDN .
  18. ^ Рекомендации по программированию символических ссылок, MSDN
  19. ^ Марк Руссинович: Внутри ядра Windows Vista: Часть 1 – Символические ссылки на основе файлов, Microsoft Technet, февраль 2007 г.
  20. ^ "Документация Sysinternals Junction" . microsoft.com . Проверено 23 марта 2018 г.
  21. ^ «Ошибки резервного копирования или восстановления Windows 0x80070001, 0x81000037 или 0x80070003» . support.microsoft.com .
  22. ^ https://learn.microsoft.com/en-us/troubleshoot/windows-server/backup-and-storage/distributed-link-tracking-on-domain-controller
  23. ^ «Отслеживание распределенных ссылок и идентификаторы объектов» . Сеть разработчиков Microsoft . Корпорация Майкрософт. 20 марта 2011 года . Проверено 30 июня 2011 г.
  24. ^ «Указание местоположения расширения пространства имен» . msdn.microsoft.com . Проверено 23 марта 2018 г.
  25. ^ «Вы не можете просмотреть или изменить атрибуты папок «Только для чтения» или «Система» в Windows Server 2003, в Windows XP, в Windows Vista или в Windows 7». support.microsoft.com . Проверено 8 июля 2021 г.
  26. ^ Создание расширений оболочки с помощью объектов экземпляра оболочки. msdn.microsoft.com
  27. ^ ab «Глава 3. Использование Cygwin». www.cygwin.com . Проверено 8 июля 2021 г.
  28. ^ «Эффективное использование Cygwin с Windows» .
  29. ^ «Coreutils: ln --symbolic создает жесткие ссылки (MSYS2-пакеты № 249)» . Гитхаб .
  30. ^ «Создание символических ссылок». Документация по клиенту Windows для ИТ-специалистов . Майкрософт . 18 января 2023 г. – через Microsoft Learn.
  31. Рохас, Мигель (16 декабря 2020 г.). «Какие версии Python отличаются от предопределенных». manualestutor.com/ . Проверено 20 декабря 2020 г.
  32. ^ symlink(7)  -  Руководство по различной информации NetBSD : волшебные символические ссылки.
  33. ^ Брукс Дэвис (2008). «Варианты символических ссылок для FreeBSD» (PDF) .
  34. ^ Нил Браун (2016). «Дело в пользу вариантов символических ссылок». ЛВН .

Внешние ссылки