Come posso creare un collegamento simbolico a una directory con uno spazio al suo interno?

24

Stavo cercando di creare un collegamento simbolico usando il seguente comando:

ln -s "~/Foo Bar/" Foo

... ma non ha funzionato (cioè quando vado nel finder e provo a fare doppio clic, dice che sta puntando a un percorso non valido e mi chiede di eliminare l'alias o di correggerlo). Ho dovuto rinominare la cartella in FooBar e quindi eseguire il seguente comando:

ln -s ~/FooBar/ Foo

Come posso creare il collegamento senza dover rimuovere lo spazio dal nome della cartella?

Sto cercando un modo per farlo in Terminale e non nell'interfaccia utente di Finder.

    
posta Senseful 17.02.2011 - 20:45
fonte

2 risposte

41

Le virgolette impediscono a ~ di essere espanso nella tua cartella Inizio, quindi devi citare solo la parte con lo spazio al suo interno:

ln -s ~/"Foo Bar/" Foo

Nota: esattamente quanto viene quotato non ha importanza, purché lo spazio sia nella porzione quotata e ~ / non lo sia. ~/Foo" "Bar/ , ~/"Foo Bar"/ , ~/Fo"o B"ar/ ecc sono tutti equivalenti. Inoltre, le virgolette singole e doppie hanno lo stesso effetto sugli spazi (anche se differiscono sugli altri caratteri), quindi anche ~/'Foo Bar/' , ~/Foo' 'Bar/ etc funzionerebbero.

Potresti anche usare un'uscita per evitare che lo spazio venga trattato come un separatore:

ln -s ~/Foo\ Bar/ Foo
    
risposta data 17.02.2011 - 21:09
fonte
0

L'ho provato io stesso. Non ho problemi con uno spazio al suo interno:

    $ ln -s "/Users/joe/test/foo bar"/ linkToFoo_Bar

ls mostra: $ linkToFoo_Bar -> /Users/joe/test/foo bar/ e funziona in terminale e finder senza problemi.

    
risposta data 17.02.2011 - 21:22
fonte

Leggi altre domande sui tag