Какая команда используется для создания символической ссылки/мягкой ссылки?
┌── ln(1) link, ln -- make links
│ ┌── Create a symbolic link.
│ │ ┌── the optional path to the intended symlink
│ │ │ if omitted, symlink is in . named as destination
│ │ │ can use . or ~ or other relative paths
│ │ ┌─────┴────────┐
ln -s /path/to/original /path/to/symlink
└───────┬───────┘
└── the path to the original file/folder
can use . or ~ or other relative paths
$ echo content > original
$ ln -s original symlink
$ ls -la original symlink
-rw-r--r-- 1 grgarside staff 8 28 Jan 18:44 original
lrwxr-xr-x 1 grgarside staff 8 28 Jan 18:44 symlink -> original
$ cat symlink
content
Для получения дополнительной информации о ln(1) см . справочную страницу .
Путь к символической ссылке не является обязательным; если опущено, ln
по умолчанию создается ссылка с тем же именем, что и у адресата, в текущем каталоге:
$ cd ~/Documents
$ ln -s ../Pictures
$ ls -l Pictures
lrwxr-xr-x 1 user staff 11 Feb 1 17:05 Pictures -> ../Pictures
Чтобы создать символическую ссылку для замены системного каталога (например, если вы хотите, чтобы она /Users
указывала на другой диск), вам необходимо отключить защиту целостности системы . Вы можете повторно включить его после настройки символической ссылки.
Команда называется ln
. При использовании с опцией -s
будет создана символическая ссылка в текущем каталоге:
ln -s /any/file/on/the/disk linked-file
No such file or directory
об ошибке.ls
(по привычке) вместо ln
! (обязательно проверьте это)Я знаю, что этот вопрос явно касается Терминала, но если вы находитесь в Стране графического интерфейса и не хотите входить в Страну терминалов, вы можете использовать SymbolicLinker . Это помещает опцию «Создать символическую ссылку» в меню «Службы» в Finder.
Command
+ Option
при перетаскивании файла ... позже обновлю ответЭто просто ln -s <source> <destination>
.
ln -s /some/dir/ ~/Desktop/dir
Вы также можете создать символическую ссылку для каталога, используя ту же команду
ln -s "$(pwd)" ~/Desktop/dir
Чтобы создать символическую ссылку на текущий каталог, в котором вы находитесь.
.
(точка) даст pwd. Не надо мудреных аргументов :).
не работает на macOS. на линуксе еще не пробовал. использование ./
привело к этому foo -> ./foo
, который указывает на себя.В качестве предупреждения для всех, вы должны использовать полные пути . Мне это не сразу стало ясно, так как я чувствовал, что могу символически ссылаться на относительные пути в папке, внутри которой я запускал команду. Я могу ошибаться (я новичок в macOS).
Например, если я попытаюсь создать символическую ссылку на папку «Изображения» внутри папки «Загрузки», в то время как cd находится в домашнем каталоге моего пользователя , это не сработает:
Users\stevebauman >_ ln -s Pictures Downloads
Вместо этого вы должны использовать:
Users\stevebauman >_ ln -s /Users/stevebauman/Pictures /Users/stevebauman/Downloads
Если исходный путь не является относительным к месту назначения, используйте абсолютный путь к исходному пути и поместите его в одинарные кавычки.
$ ln -s '/any file/could have (special chars)/or spaces/test' '/some/other place/file'
Вы всегда можете выяснить текущий полный неэкранированный путь к чему-либо, перейдя в эту папку в терминале, а затем набрав
$ pwd
Адриан Линч
Эвоки
грг
без холма
ln -s /Users /Users/myuser/all-users
работает отлично. Вам нужно отключить SIP только в том случае, если вы хотите создать символическую ссылку в папке, защищенной SIP (как если бы вы хотели создать там любую другую запись каталога).грг
без холма
грг
Эдвард Фальк
ln -s "This directory is no longer in use" README
будет совершенно законной, и тогда любой, кто ее выполнитls -l
, увидит сообщение.Питер В.
карамба
ln -s ./original/source/ ../path/to/symlink
, поэтому.
оператор действительно все испортил для меня, используя весь путь с~
исправленным.грг
./original/source/
; я бы использовалoriginal/source
.Тоби Меллор