Come creare un collegamento soft o simbolico?


Risposte:


666

Vedere man ln.

Per creare un collegamento simbolico a /usr/bin/barcui fa riferimento il file originale /opt/foo, utilizzare:

ln -s /opt/foo /usr/bin/bar

Dovresti applicare il comando sopra come root (cioè con sudo).


Sto usando: sudo ln –s /etc/apache2/sites-available/redmine /etc/apache2/sites-enabled/000-redmineottenere errore:ln: target '/etc/apache2/sites-enabled/000-redmine' is not a directory
RAJ ...

1
La documentazione di Ubuntu dice "Crea collegamenti fissi di default, collegamenti simbolici con --symbolic". La soluzione di cui sopra creerà un collegamento simbolico come richiesto dall'OP?
Tanay,

4
Pensavo che César volesse mettere i suoi file in / opt e / usr / bin per avere il collegamento simbolico, non diversamente.
contrattempo

4
@mishap ha ragione per quanto mi riguarda. È il contrario.
Daniel Szmulewicz,

2
@kevinmicke dopo che la tua spiegazione ha finalmente capito che la spiegazione della risposta è stata dichiarata in ordine inverso rispetto al comando, facendo in modo che il mio cervello (e altri) la leggessero al contrario
Andrew


21

Se l'eseguibile 'p4v' è in / opt / bin / p4v, puoi semplicemente eseguire:

sudo ln -s /opt/bin/p4v /usr/bin/p4v
sudo chmod ugo+x /usr/bin/p4v

Sarebbe meglio aggiungere / opt / bin (o dovunque sia l'eseguibile) al tuo percorso:

echo "export PATH=\$PATH:/opt/bin" >> ~/.profile
reset

~/.profilesarebbe meglio per l'impostazione $PATH.
Lekensteyn,

è possibile modificare /etc/environmentper modificare il sistema PATH a livello.
Michał Šrajer,

4

Controlla la posizione del software da questo.

which application-name #replace for the application you are looking for

per esempio

which skype

l'output sarà questo.

/usr/bin/skype 

Per creare il collegamento software. ad esempio, si desidera creare il collegamento software per skypesul desktop

ln -s /usr/bin/skype ~/Desktop/

Per ulteriori informazioni su ln.

man ln

o

ln --help

2
ln -s -n ./TargetDirectory ./Nickname

Nota, questo funziona se entrambi i nodi sono sotto di te nello stesso albero. È possibile utilizzare la notazione relativa

  • -s il comando lo rende un collegamento simbolico
  • -n consente di creare un symlink di tipo cartella

Benvenuto in askubuntu.com. In questo caso, $indicare un prompt della riga di comando è una scelta di stile e probabilmente non costituisce un problema. Tuttavia, tenere presente che l'inclusione di elementi in un blocco di codice diverso dal codice e dal suo output può causare confusione.
J. Starnes il

1

Questo modello è stato più utile per me delle risposte sopra riportate. Probabilmente non più corretto, solo meno offuscato:

ln -s <path/to/real/file-or-folder> <symlink path>

Basta sostituire le parti in <>'s


0

Se sta dicendo target is not a folder, significa che ci sono spazi nei nomi delle tue cartelle, ad esempio: New Folderha uno spazio

È necessario modificare il percorso e aggiungere una barra rovesciata \dopo ogni spazio nei percorsi

per esempio:

ln -s /opt/bin /usr/var/New\ Folder

3
Questa non è una risposta alla domanda dei PO. Attendi fino a quando non hai la reputazione sufficiente per aggiungere commenti.
derHugo,

0

Ho scoperto che è più facile andare dove vuoi che sia il link e quindi creare il link usando sudo ln -s /path/to/source/file, piuttosto che fare ln -s target source.

Quindi nel tuo caso lo farei cd /usr/binallora sudo ln -s /opt/bin/pv4. L'altro modo non ha funzionato nel mio caso.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.