Я пытался создать символическую ссылку, используя следующую команду:
ln -s "~/Foo Bar/" Foo
... но это не сработало (т.е. когда я захожу в Finder и пытаюсь дважды щелкнуть по нему, он говорит, что указывает на недопустимый путь, и предлагает мне удалить псевдоним или исправить его). Мне пришлось переименовать папку, FooBar
а затем выполнить следующую команду:
ln -s ~/FooBar/ Foo
Как я могу создать ссылку, не удаляя пробел из имени папки?
Я ищу способ сделать это в Терминале, а не в пользовательском интерфейсе Finder.
Кавычки не позволяют ~
расширить вашу домашнюю папку, поэтому вам нужно либо указать только ту часть, в которой есть пробел:
ln -s ~/"Foo Bar/" Foo
Примечание: не имеет значения, сколько именно указано в кавычках, если в кавычках есть пробел, а ~/ нет. ~/Foo" "Bar/
, ~/"Foo Bar"/
, и ~/Fo"o B"ar/
т. д. все эквивалентны. Кроме того, одинарные и двойные кавычки имеют одинаковый эффект для пробелов (хотя они различаются для других символов), поэтому ~/'Foo Bar/'
и ~/Foo' 'Bar/
т. д. также будут работать.
Вы также можете использовать побег, чтобы пробел не рассматривался как разделитель:
ln -s ~/Foo\ Bar/ Foo
"$HOME/Foo Bar/"
.~
, $HOME
должен быть заключен в двойные кавычки, чтобы избежать путаницы, если ваш домашний каталог содержит пробелы или другие странные символы. "$HOME/Foo Bar/"
(как вы предлагаете), "$HOME"/Foo" "Bar/
, "$HOME"/Foo\ Bar/
и т. д. будут работать.Я проверил это на себе. У меня нет проблем с пробелом в нем:
$ ln -s "/Users/joe/test/foo bar"/ linkToFoo_Bar
ls показывает: $ linkToFoo_Bar -> /Users/joe/test/foo bar/
и он работает в терминале и поиске без проблем.
~
помощник.
Каджунлук
ln -s
делает симлинки. Finder создает псевдонимы. Они почти идентичны в практическом, обычном использовании, но важно понимать, что они разные . Символические ссылки указывают на путь к каталогу, а псевдонимы указывают на файл. Если у вас оба указывают на один и тот же файл, и вы перемещаете файл в другую папку, затем создайте новый файл в старой папке, псевдоним будет указывать на перемещенный оригинал, а символическая ссылка будет указывать на новый файл.чувственный
Джейсон Салаз
ln -s ~/Foo<tab>
(где <tab> обозначает фактическую клавишу ⇥ (tab) на вашей клавиатуре), если есть только одна папка, которая начинается с «Foo»~
, тогда она будет автоматически расширить путь к~/Foo\ Bar/
.