[C-Shell] Lien symbolique
Résolu
Bonjour à tous,
Je travaille actuellement en c-shell et j'aimerais autant que possible ne pas avoir à en changer.
Je cherche à tester si un répertoire est un lien symbolique.
Je sais qu'en shell, il y a les commandes :
mais malheureusement, aucune ne fonctionne avec mon script.
Auriez-vous une idée ? Merci
Je travaille actuellement en c-shell et j'aimerais autant que possible ne pas avoir à en changer.
Je cherche à tester si un répertoire est un lien symbolique.
Je sais qu'en shell, il y a les commandes :
if [-h logdir] then ... if [-L logdir] then ...
mais malheureusement, aucune ne fonctionne avec mon script.
Auriez-vous une idée ? Merci
Configuration: Windows XP Internet Explorer 7.0
2 réponses
-
ModérateurSalut,
avec l'option -l de ls on peut savoir si un fichier est un lien symbolique, le 1er caractère désignant le type de fichier> if ( ! -z `ls -l trash2 | grep -o '^l'`) echo trash2 lien symbolique trash2 lien symbolique
ou> if ( ! -z `readlink trash2` ) echo trash2 lien symbolique trash2 lien symbolique
-
ModérateurSalut,
Une autre solution :#! /bin/csh file "$1" | grep -o "link" @ retval = $? if ( $retval == 0 ) then echo "$1 est un lien symbolique" endif
Lami20 => Ta solution avec "if ( ! -z `readlink trash2` ) echo trash2 lien symbolique" marche pô ;-(([yogi@MDK ~/trash]$ ls -l total 8 -rwxr-xr-x 1 yogi yogi 119 mai 13 10:00 bar -rwxr-xr-x 1 yogi yogi 115 mai 13 09:58 bar~ lrwxrwxrwx 1 yogi yogi 4 mai 13 09:22 bla -> rep/ -rw-r--r-- 1 yogi yogi 0 mai 13 09:11 file lrwxrwxrwx 1 yogi yogi 4 mai 13 09:11 foo -> file drwxr-xr-x 2 yogi yogi 40 mai 13 09:21 rep [yogi@MDK ~/trash]$ if ( ! -z `readlink bla` ) echo lien symbolique lien symbolique # vrai [yogi@MDK ~/trash]$ if ( ! -z `readlink ccm` ) echo lien symbolique lien symbolique # faux [yogi@MDK ~/trash]$ if ( ! -z `readlink blabla` ) echo lien symbolique lien symbolique # faux [yogi@MDK ~/trash]$
;-))
-
ModérateurSalut,
Lami20 => Ta solution avec "if ( ! -z `readlink trash2` ) echo trash2 lien symbolique" marche pô ;-((
alors comme çadebian:/home/lami20j> if ( `readlink trash2` != "" ) echo lien symbolique lien symbolique debian:/home/lami20j> if ( `readlink ccm` != "" ) echo lien symbolique debian:/home/lami20j> if ( `readlink blabla` != "" ) echo lien symbolique debian:/home/lami20j>
Pourquoi yogi?! [yogi@MDK ~/trash]$ -
Modérateur@lami20jPourquoi yogi?
On avait fait des tests un jour ensemble et j'avais créé cet utilisateur et depuis il est resté et je m'en sers justement pour des tests avec d'autres shells ;-))
-
-
@jipicyMerci pour vos solutions. Encore un problème résolu !
-