J'ai besoin d'un lien symbolique qui résout par rapport au répertoire dans lequel il est placé. Quelle commande est utilisée pour créer une telle chose?
linux
command-line
symbolic-link
Jérémie Rose
la source
la source
ln -s ../some/other/file /some/dir/linkname
ln -s ./file linkname
car il.
fait référence au répertoire actuel.ln -s somedir/original-dir link-name
ne marche pas. Il crée un répertoire avec le nomlink-name
qui contient un lien non valide. La commande qui fonctionne estln -sr somedir/original-dir link-name
Les versions récentes de ln (> = 8.16) de GNU coreutils prennent en charge l’ option
--relative
(ou-r
), ce qui signifie que vous pouvez appelerln -s
avec 2 chemins absolus ou relatifs (par rapport à votre répertoire de travail) et il déterminera le chemin relatif correct qui doit être écrit sur le lien symbolique.la source
-r
option est utile lorsque vous effectuez une compilation croisée et que vous avez besoin de chemins absolus sur l'hôte de construction, mais relatifs sur la cible.ln -r -s targetfile myalias
peut vous aider à résoudre le problèmeCe que vous devez comprendre, c’est qu’un lien symbolique ressemble plus à un fichier texte qu’à une entrée de répertoire qui contient un fichier. Donc si tu
alors c'est assez similaire à
Le système ne se soucie pas de savoir s'il
/file/../poo
existe, c'est juste un morceau de texte qui est placé dans le lien symbolique. Lorsque quelque chose essaie d' ouvrir le lien symbolique, le système essaie de le résoudre.Si vous utilisez un shell avec l'achèvement du nom de fichier, cette fonctionnalité peut compliquer les choses en vous permettant de compléter un nom de fichier relatif à votre répertoire de travail actuel, même si vous finissez par l'utiliser comme cible d'un lien symbolique dans un autre répertoire.
la source
<
changer la façon dont la mémoire allouée du système. Bien sûr, il n'y a pas de fichier nommé<
dans ce répertoire, il s'agit simplement d'un moyen peu coûteux de créer un très petit fichier qui présente des propriétés intéressantes par rapport à un fichier texte standard sur cette plate-forme particulière.Les liens relatifs étaient difficiles pour moi sous OS X, c’est-à-dire
les deux ne fonctionnaient pas (quelque chose avait été créé mais ce n'était pas un répertoire). J'ai créé le lien souhaité en utilisant des chemins absolus .
la source
ln -s Dropbox/git/codyhess/bin ~/bin
Je voulais juste expliquer plus en détail comment créer un lien symbolique en utilisant des chemins relatifs (avec un exemple détaillé).
Comme Ignacio Vazquez-Abrams est mentionné dans les commentaires, vous devez spécifier l'emplacement du fichier / dossier par rapport à l'emplacement de création du lien symbolique et non par rapport à votre répertoire actuel.
EXEMPLE
Vous êtes dans
/usr/share/nginx/html/_src/learn
Vous allez créer un lien symboliquecoding
dans/usr/share/nginx/html
Créer un lien symbolique relatif (théorie):
Créer un lien symbolique relatif actuel:
Plus d'informations (même exemple)
la source