[C-Shell] Lien symbolique

Résolu/Fermé
xavdoug Messages postés 21 Date d'inscription samedi 21 avril 2007 Statut Membre Dernière intervention 16 novembre 2007 - 13 mai 2007 à 01:06
xavdoug Messages postés 21 Date d'inscription samedi 21 avril 2007 Statut Membre Dernière intervention 16 novembre 2007 - 22 mai 2007 à 22:17
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 :
if [-h logdir] then ...
if [-L logdir] then ...


mais malheureusement, aucune ne fonctionne avec mon script.

Auriez-vous une idée ? Merci

2 réponses

lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
13 mai 2007 à 09:33
Salut,

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

0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 894
13 mai 2007 à 10:07
Salut,

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]$
;-))
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
13 mai 2007 à 10:17
Salut,

Lami20 => Ta solution avec "if ( ! -z `readlink trash2` ) echo trash2 lien symbolique" marche pô ;-((

alors comme ça
debian:/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]$
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 894 > lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019
13 mai 2007 à 10:39
Pourquoi 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 ;-))
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567 > jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020
13 mai 2007 à 11:09
en fait c'est bizarre puisque moi j'ai choisi ce nom pour guide d utilisation du shell pour debutant
puisque j'ai pensé à la mascotte ccm et yogi
0
xavdoug Messages postés 21 Date d'inscription samedi 21 avril 2007 Statut Membre Dernière intervention 16 novembre 2007 > jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020
22 mai 2007 à 22:17
Merci pour vos solutions. Encore un problème résolu !
0