OVH Cloud OVH Cloud

Autour de la commande LN

4 réponses
Avatar
Renaud Lacour
Bonjour,

je suis =E0 la recherche de deux fonctionnalit=E9s (entre autres) pour le
shell :
- une commande ln dont l'option -f forcerait l'effacement des liens
symboliques mais pas des autres fichiers (afin de pr=E9venir de regrettables
=E9tourderies sans pour autant g=EAner l'utilisateur);
- une commande qui retourne tout b=EAtement le fichier vers lequel pointe
un lien.

Merci pour vos aides.


--=20
Renaud LACOUR

EMail : nospam-renaud.lacour-nospam@free.fr

4 réponses

Avatar
Did0
Renaud Lacour writes:
- une commande qui retourne tout bêtement le fichier vers lequel pointe
un lien.
perl -le 'print readlink foreach @ARGV' [lien] ...

--
Dido

Avatar
Stephane CHAZELAS
Le Thu, 10 Jul 2003 01:03:56 +0200, Renaud Lacour écrivait :
je suis à la recherche de deux fonctionnalités (entre autres) pour le
shell :
- une commande ln dont l'option -f forcerait l'effacement des liens
symboliques mais pas des autres fichiers (afin de prévenir de regrettables
étourderies sans pour autant gêner l'utilisateur);


Tu peux faire un script. Mais quid de
ln -s file directory
?

- une commande qui retourne tout bêtement le fichier vers lequel pointe
un lien.


Tu trouves des fois une command "readlink" (GNU coreutils et
avec kpathsea).

Tu as GNU find.

find file -prune -printf '%ln'

Tu as le "stat" de zsh.

zmodload -i zsh/stat
stat +link file

Tu peux essayer de parser le résultat de "ls -l" mais tu auras
du mal à faire un truc qui marche à tous les coups.

--
Stéphane

Avatar
Thomas Nemeth
Le jeu 10 jui 2003 à 09:54, Stephane CHAZELAS a tapoté :
| Le Thu, 10 Jul 2003 01:03:56 +0200, Renaud Lacour écrivait :
|
| > - une commande qui retourne tout bêtement le fichier vers lequel pointe
| > un lien.
[...]
| Tu peux essayer de parser le résultat de "ls -l" mais tu auras
| du mal à faire un truc qui marche à tous les coups.

En coupant à "->" ça devrait le faire, non ?


Thomas
Avatar
Renaud Lacour
Le vendredi 11 juillet 2003, à 19:20,

En coupant à "->" ça devrait le faire, non ?


En fait, ça marche très bien avec find (ainsi qu'avec perl, sauf que c' est
légèrement moins rapide).

--
Renaud LACOUR

EMail :