Ln

De bricosoft
Version datée du 14 octobre 2012 à 20:58 par Sysop (discussion | contributions)
(diff) ← Version précédente | Version actuelle (diff) | Version suivante → (diff)
Aller à la navigation Aller à la recherche
<google uid="C08" position="right"></google>
Erreur dans le widget Twitter Search: unable to write file /home/gbp4dt5/zones/bricosoft.com/www/extensions/Widgets/compiled_templates/wrt696b895c074e61_19355802

ln, je m'appelle ln, je suis commande unix pas comme les autres ... Cette commande crée des liens (links). Les unixiens y sont attachés malgré qu'elle veuille par défaut créer des liens matériels (ndlr: toutes les memes) alors que la plupart du temps ils veulent des liens symboliques (mais pas platoniques).

remplacer un lien symbolique par un autre

Pour remplacer un lien symbolique à la volée, il faut forcer (-f) et comme c'est un dossier on rajoute -n (--no-dereference), la preuve :

$ ls -l
lrwxrwxrwx   1 toto toto   16 2012-10-14 21:07 mabib -> ma-bib-version7/
$ ln -sv ma-bib-version12 mabib
ln: creating symbolic link `mabib/ma-bib-version12': File exists

okay, bon on force :

$ ln -sfv ma-bib-version12 mabib
`mabib/ma-bib-version7' -> `ma-bib-version7'
$ ls -l
lrwxrwxrwx 1 toto toto  15 2012-10-14 21:32 mabib -> ma-bib-version7
...

Ca n'a pas fonctionné, wtf? Ca pointe toujours sur l'ancienne et en plus ça a créé un lien symbolique dans le dossier !

ls -l ma-bib-version7/
lrwxrwxrwx 1 toto toto 16 2012-10-14 22:24 ma-bib-version12 -> ma-bib-version12

Il faut préciser à ln, qu'elle doit détruire l'ancien lien et non pas en créér un nouveau dans ce qu'elle pense etre un dossier normal. Cela se précise avec l'option --no-dereference (raccourcis : -n) :

$ ln -sfvn ma-bib-version12 mabib
`mabib' -> `ma-bib-version12'
$ ls -l
lrwxrwxrwx   1 toto toto   16 2012-10-14 21:08 mabib -> ma-bib-version12/

Attention : la cible peut aussi bien etre soit un fichier et il sera écrasé, soit un dossier et un lien mort sera créé dedans :

Si mabib est déjà est dossier, -v vous montrera l'erreur :

`mabib/ma-bib-version12' -> `ma-bib-version12'

Si mabib est déjà un fichier, il sera écrasé silencieusement :

`mabib' -> `ma-bib-version12'

cloning machine

Fichier:03-1129378256T.gif
$ touch Scratchy;while true;do ln Scratchy Clone; echo Cloned; rm Clone;echo Killed;done;

<source lang="bash">

touch Scratchy;
while true;
do ln Scratchy Clone;
echo Cloned;
rm Clone;
echo Killed;
done;

</source>

Liens