Comment créer un lien symbolique?


Réponses:


666

Voir man ln.

Pour créer un lien symbolique /usr/bin/barauquel référence le fichier d'origine /opt/foo, utilisez:

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

Vous devez appliquer la commande ci-dessus en tant que racine (c'est-à-dire avec sudo).


J'utilise: sudo ln –s /etc/apache2/sites-available/redmine /etc/apache2/sites-enabled/000-redmineobtenir une erreur:ln: target '/etc/apache2/sites-enabled/000-redmine' is not a directory
RAJ ...

1
La documentation Ubuntu dit "Crée des liens physiques par défaut, des liens symboliques avec --symbolic." La solution ci-dessus créera-t-elle un lien symbolique demandé par OP?
Tanay

4
Je pensais que César voulait placer ses fichiers dans / opt et / usr / bin pour avoir le lien symbolique, et non l'inverse.
mésaventure

4
@mishap a raison en ce qui me concerne. C'est l'inverse.
Daniel Szmulewicz

2
@ kevinmicke après votre explication a finalement réalisé que l'explication de la réponse était énoncée dans l'ordre inverse de celui de la commande, ce qui faisait lire mon cerveau (et celui des autres) à l'envers
Andrew


21

Si l'exécutable 'p4v' se trouve dans / opt / bin / p4v, vous pouvez simplement lancer:

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

Il serait préférable d’ajouter / opt / bin (ou où que se trouve l’exécutable) à votre chemin:

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

~/.profileserait mieux pour le réglage $PATH.
Lekensteyn

vous pouvez modifier /etc/environmentpour modifier le système PATH à l'échelle.
Michał Šrajer

4

Vérifiez l'emplacement du logiciel par ceci.

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

par exemple

which skype

la sortie sera la suivante.

/usr/bin/skype 

Pour créer le lien symbolique. par exemple, vous voulez créer le lien symbolique skypesur votre bureau

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

Pour plus d'informations sur ln.

man ln

ou

ln --help

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

Remarque, cela fonctionne si les deux nœuds sont en dessous de vous dans le même arbre. Vous pouvez utiliser la notation relative

  • La commande -s en fait un lien symbolique
  • -n permet de créer un lien symbolique de type dossier

Bienvenue sur askubuntu.com. Dans ce cas, $indiquer une invite de ligne de commande est un choix de style et ne devrait pas être un problème. Cependant, gardez à l'esprit que l'inclusion d'éléments dans un bloc de code autre que le code et sa sortie peut être source de confusion.
J. Starnes

1

Ce modèle m'a été plus utile que les réponses ci-dessus. Probablement pas plus correct, juste moins obscurci:

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

Il suffit de remplacer les pièces dans <>« s


0

Si c'est le cas target is not a folder, cela signifie qu'il y a des espaces dans les noms de vos dossiers, par exemple: New Foldera un espace

Vous devez modifier le chemin et ajouter une barre oblique inverse \après chaque espace dans les chemins.

par exemple:

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

3
Ce n'est pas une réponse à la question des PO. Veuillez patienter jusqu'à ce que vous ayez assez de réputation pour ajouter des commentaires.
derHugo

0

J'ai constaté qu'il est plus facile d'aller où vous voulez que le lien se trouve, puis de créer le lien en utilisant sudo ln -s /path/to/source/file, plutôt que de le faire ln -s target source.

Donc, dans votre cas, je le ferais cd /usr/binalors sudo ln -s /opt/bin/pv4. L'autre façon n'a pas fonctionné dans mon cas.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.