Je veux faire un lien symbolique sous Linux. J'ai écrit cette commande Bash où le premier chemin est le dossier dans lequel je veux créer un lien et le deuxième chemin est la source compilée.
ln -s '+basebuild+'/IpDome-kernel/kernel /home/build/sandbox/gen2/basebuild/IpDome-kernel/kernal
Est-ce correct?
Réponses:
Pour créer un nouveau lien symbolique (échouera si le lien symbolique existe déjà):
Pour créer ou mettre à jour un lien symbolique:
la source
ln
syntaxe est similaire à lacp
syntaxe, par exemple la destination source .cp
c'estCoPy
,ln
estLiNk
. Première et troisième lettres.Où le
-s
rend symbolique.la source
unlink LINK_NAME
ln -s where-the-symlink-should-point where-to-place-the-symlink-itself
.rm
, mais la plupart des gens ne savent pas supprimer la fin/
.la source
Vous pouvez consulter la page de manuel ici:
http://linux.die.net/man/1/ln
la source
(Parce qu'une image ASCII vaut mille caractères.)
Une flèche peut être un mnémonique utile, d'autant plus que c'est exactement à quoi elle ressemble dans le dir d'Emacs.
Et vue d'ensemble pour ne pas la confondre avec la version de Windows
Linux:
Les fenêtres:
Vous pouvez également les considérer comme
Le
from-here
ne devrait pas encore exister, il doit être créé, alors que leto-here
devrait déjà exister (IIRC).(Je suis toujours mêlé à la question de savoir si diverses commandes et arguments doivent impliquer un emplacement préexistant ou un à créer.)
EDIT: Il s'enfonce toujours lentement pour moi; J'ai une autre façon que j'ai écrite dans mes notes.
la source
dired
, c'est super facile, lorsque vous placez le curseur sur votre cible, appuyez surS
et tapez le répertoire dans lequel vous souhaitez créer le lien. Réduit l'écart entre imaginer le résultat souhaité et taper. Voir gnu.org/software/emacs/manual/html_node/emacs/… .http://unixhelp.ed.ac.uk/CGI/man-cgi?ln
la source
man ln
, ce qui l'appelleln -s TARGET LINK_NAME
À la question d'origine:
Cela va en effet créer un lien symbolique (
-s
) à partir du fichier / répertoire:à votre nouveau lien
Voici quelques façons de vous aider à vous souvenir:
Tout d'abord, il y a la page de manuel pour
ln
. Vous pouvez y accéder en recherchant "man ln" dans google, ou simplement ouvrir une fenêtre de terminal et taperman ln
et vous obtiendrez les mêmes informations. La page de manuel indique clairement:Si devoir chercher ou lire une page de manuel à chaque fois n'est pas pour vous, vous aurez peut-être plus de facilité à vous souvenir que tout commandes nix fonctionnent de la même manière:
cp
copie un fichier qui existe actuellement (le premier argument) dans un nouveau fichier (le deuxième argument).mv
déplace un fichier qui existe actuellement (le premier argument) vers un nouvel emplacement (le deuxième argument)Lie également
ln
un fichier qui existe actuellement (le premier argument) à un nouveau lien (le deuxième argument) *La dernière option que je voudrais suggérer est que vous pouvez créer vos propres pages de manuel qui sont faciles à lire et faciles (pour vous) à trouver / mémoriser. Créez simplement un script shell simple qui vous donne l'indication dont vous avez besoin. Par exemple ♦ :
Dans votre fichier .bash_aliases, vous pouvez placer quelque chose comme:
Ensuite, lorsque vous en avez besoin, tapez simplement la ligne de commande
cmds
et vous récupérerez la syntaxe appropriée de manière à pouvoir la lire et la comprendre rapidement. Vous pouvez rendre ces fonctions aussi avancées que vous le souhaitez pour obtenir les informations dont vous avez besoin, c'est à vous de décider. Vous pouvez même les rendre interactifs, il vous suffit donc de suivre les instructions .. quelque chose comme:* - bien évidemment ils peuvent tous prendre des paramètres différents et faire des choses différentes et peuvent travailler sur des fichiers ainsi que des répertoires ... mais la prémisse est la même
♦ - exemples utilisant le shell bash
la source
la source
Création de liens symboliques ou de liens logiciels sous Linux:
Ouvrez l'invite Bash et tapez la commande mentionnée ci-dessous pour créer un lien symbolique vers votre fichier:
A) Allez dans le dossier où vous souhaitez créer un lien logiciel et tapez la commande comme mentionné ci-dessous :
B) Aller à votre chemin de nom de nouveau fichier et tapez :
$ ls -lrt (To see if the new-file is linked to the file or not)
Exemple:
la source
ln -s sourcepath linkpathname
Remarque:
-s crée des liens symboliques au lieu de liens physiques
la source
Si vous vous trouvez dans le répertoire où vous souhaitez créer un lien symbolique, ignorez le deuxième chemin.
Il créera un lien symbolique de l'
target
intérieurmyfolder
.Syntaxe générale
la source
C'est Stack Overflow donc je suppose que vous voulez du code:
Tout le code suivant suppose que vous souhaitez créer un lien symbolique nommé
/tmp/link
qui renvoie vers/tmp/realfile
.ATTENTION : Bien que ce code vérifie les erreurs, il ne vérifie PAS s'il
/tmp/realfile
existe réellement! En effet, un lien mort est toujours valide et en fonction de votre code, vous souhaiterez (rarement) créer le lien avant le fichier réel.Shell (bash, zsh, ...)
Vraiment simple, tout comme vous le feriez sur la ligne de commande (qui est le shell). Toute la gestion des erreurs est effectuée par l'interpréteur de shell. Ce code suppose que vous disposez d'un interpréteur de shell fonctionnel sur
/bin/sh
.Si nécessaire, vous pouvez toujours implémenter votre propre gestion des erreurs en utilisant le
$?
variable qui ne sera définie sur 0 que si le lien a été créé avec succès.C et C ++
symlink
renvoie uniquement 0 lorsque le lien peut être créé. Dans d'autres cas, j'utiliseperror
pour en dire plus sur le problème.Perl
Ce code suppose que vous avez un interpréteur perl 5 sur
/usr/bin/perl
.symlink
ne renvoie 1 que si le lien peut être créé. Dans d'autres cas, j'imprime la raison de l'échec sur la sortie d'erreur standard.la source
Je voudrais présenter une version plus simple en anglais des descriptions déjà présentées.
La commande "ln" crée un lien-FICHIER et le "-s" spécifie que le type de lien sera symbolique. Un exemple de fichier de lien symbolique peut être trouvé dans une installation WINE (en utilisant "ls -la" pour afficher une ligne du contenu du répertoire):
Les informations standard sur les fichiers sont à gauche (bien que le premier caractère soit un "l" pour "lien"); le nom du fichier est "a:" et le "->" indique également que le fichier est un lien. Il indique essentiellement à WINE comment le "lecteur A:" de Windows doit être associé à un lecteur de disquette sous Linux. Pour créer réellement un lien symbolique SIMILAIRE à celui-ci (dans le répertoire courant, et pour le faire pour WINE, c'est plus compliqué; utilisez l'utilitaire "winecfg"):
la source
Pour créer un lien symbolique / lien logiciel, utilisez:
par exemple:
la source
Il y a deux types de liens:
liens symboliques: faire référence à un chemin symbolique indiquant l'emplacement abstrait d'un autre fichier
liens durs: reportez-vous à l'emplacement spécifique des données physiques.
Dans votre cas, les liens symboliques:
vous pouvez vous référer à http://man7.org/linux/man-pages/man7/symlink.7.html
vous pouvez créer des liens trop durs
Un lien dur vers un fichier est impossible à distinguer de l'entrée de répertoire d'origine; toute modification apportée à un fichier est en fait indépendante du nom utilisé pour référencer le fichier. Les liens matériels ne font normalement pas référence à des répertoires et peuvent ne pas s'étendre sur les systèmes de fichiers.
la source
Les liens sont essentiellement de deux types:
Liens symboliques (mous): lien vers un chemin symbolique indiquant l'emplacement abstrait d'un autre fichier
Liens physiques: lien vers l'emplacement spécifique des données physiques.
Exemple 1:
Ce qui précède est un exemple de lien dur où vous pouvez avoir une copie de vos données physiques.
Exemple 2:
La commande ci-dessus créera un lien symbolique vers file1.txt.
Si vous supprimez un fichier source, vous n'aurez rien vers la destination en soft.
Quand vous faites:
ls -lai
Vous verrez qu'il existe un numéro d'inode différent pour les liens symboliques.
Pour plus de détails, vous pouvez lire la page de manuel de ln sur votre système d'exploitation Linux.
la source
hard link where you can have a copy of your physical data
- Je pense que nous ne créons pas de copie des données physiques. Juste un autre nom pour les mêmes données physiques.Je trouve un peu déroutant les terminologies "cible" et "répertoire" dans les informations man.
La cible est le dossier vers lequel nous faisons un lien symbolique et le répertoire le lien symbolique réel (pas le répertoire vers lequel vous allez effectuer un lien symbolique), si quelqu'un éprouve la même confusion, ne vous sentez pas seul.
Voici mon interprétation de la création d'un Symlink (sous Linux):
Vous pouvez accéder au dossier dans lequel vous souhaitez créer le lien symbolique et exécuter la commande ou spécifier le CHEMIN COMPLET pour votre lien symbolique au lieu de NOM-DE-VOTRE-SYMLINK.
OU
J'espère que cela aide ceux qui sont (encore) légèrement confus.
la source
Comment créer un lien symbolique dans vagabond. Pas:
la source