Próbowałem utworzyć dowiązanie symboliczne za pomocą następującego polecenia:
ln -s "~/Foo Bar/" Foo
... ale to nie zadziałało (tj. kiedy wchodzę do wyszukiwarki i próbuję kliknąć dwukrotnie, oznacza to, że wskazuje nieprawidłową ścieżkę i monituje mnie o usunięcie aliasu lub naprawienie go). Musiałem zmienić nazwę folderu na, FooBar
a następnie uruchomić następujące polecenie:
ln -s ~/FooBar/ Foo
Jak mogę utworzyć łącze bez konieczności usuwania spacji z nazwy folderu?
Szukam sposobu, aby to zrobić w Terminalu, a nie w interfejsie Findera.
ln -s
tworzy dowiązania symboliczne. Finder tworzy aliasy. Są prawie identyczne w praktycznym, powszechnym użyciu, ale ważne jest, aby rozpoznać, że są różne . Dowiązania symboliczne wskazują ścieżkę do katalogu, a aliasy wskazują plik. Jeśli oba wskazują na ten sam plik i przenosisz plik do innego folderu, a następnie utwórz nowy plik w starym folderze, alias będzie wskazywał na przeniesiony oryginał, a łącze symboliczne wskaże nowy plik.ln -s ~/Foo<tab>
(gdzie <tab> oznacza rzeczywisty klawisz ⇥ (tab) na klawiaturze), jeśli jest tylko jeden folder, który zaczyna się od „Foo”,~
to automatycznie rozwiń ścieżkę do~/Foo\ Bar/
.Odpowiedzi:
Znaki cudzysłowu nie mogą
~
zostać rozszerzone do twojego folderu domowego, więc musisz albo zacytować tylko część z miejscem w nim:Uwaga: dokładnie to, ile cytatu jest cytowane, nie ma znaczenia, dopóki miejsce jest w cytowanej części, a ~ / nie.
~/Foo" "Bar/
,~/"Foo Bar"/
,~/Fo"o B"ar/
Etc są równoważne. Ponadto, jedno- i dwu-cytaty mają taki sam wpływ na przestrzeni (choć różnią się one od innych znaków), tak~/'Foo Bar/'
,~/Foo' 'Bar/
etc również pracy.Możesz także użyć klawisza Escape, aby zapobiec traktowaniu przestrzeni jako separatora:
źródło
"$HOME/Foo Bar/"
.~
,$HOME
powinien być w cudzysłowie, aby zapobiec pomyłkom, jeśli twój katalog domowy zawiera spacje lub inne dziwne znaki."$HOME/Foo Bar/"
(jak sugerujesz)"$HOME"/Foo" "Bar/
,"$HOME"/Foo\ Bar/
itp zadziała.Sam to przetestowałem. Nie mam problemu ze spacją:
ls shows:
$ linkToFoo_Bar -> /Users/joe/test/foo bar/
i działa bez problemu w terminalu i wyszukiwarce.źródło
~
pomocnika.