Comment créer un lien symbolique?

465

J'installe p4v /opt, mais /usr/binest sur mon chemin. Est-il possible de créer un lien symbolique ou logiciel pour p4v de /optà /usr/bin, afin que je puisse simplement taper "p4v" car il se /usr/bintrouve sur mon chemin?

café
la source

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).

Michał Šrajer
la source
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
40

L'erreur est que vous écrivez la commande mal. La bonne façon est

ln -s /<full>/<path>/<to>/<file> /usr/local/bin

http://ubuntuforums.org/showthread.php?t=2001697

Pedro Arnoldo Machado Duran
la source
Notez la barre de frappe principale /
masse
Merci, j'ai complètement manqué que j'avais besoin du chemin absolu vers le fichier lié.
Andi R
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
dv3500ea
la source
~/.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
Hafiz Shehbaz Ali
la source
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
Mohamad El Boudi
la source
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

LucasY
la source
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
Sam
la source
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.

briankip
la source