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