J'ai un dossier utilisateur rempli de liens symboliques brisés. Je sais chercher les liens symboliques avec find, mais comment tester s'il sont valides ou non ? (pour les supprimer ensuite)
cf l'option -L
$ ls -l
total 4
drwxrwxr-x 2 gab gab 4096 May 11 2007 dir
-rw-rw-r-- 1 gab gab 0 May 11 2007 file
lrwxrwxrwx 1 gab gab 4 May 11 2007 lien_casse -> yapa
lrwxrwxrwx 1 gab gab 4 May 11 2007 lien_dir -> dir/
lrwxrwxrwx 1 gab gab 4 May 11 2007 lien_file -> file
$ ls -L lien_file >/dev/null 2>&1
$ echo $?
0
$ ls -L lien_dir >/dev/null 2>&1
$ echo $?
0
$ ls -L lien_casse >/dev/null 2>&1
$ echo $?
2
liste les liens que tu veux (et en replaçant echo par rm, tu peux les effacer).
Explication :
@ signifie qu'on se restreint aux liens
^ qu'on nie la suite
e: que l'on exécute ce qui suit, soit test si le fichier existe bien.
Je suppose qu'il y a plus court, sans appel à test, mais je ne vois pas.
# readlink
Posté par peck (site web personnel) . Évalué à 2.
# Liens symboliques brisés
Posté par Sebastian . Évalué à 2.
Il y a un bon exemple de script bash pour tester si des liens symboliques sont brisés.
http://abs.traduc.org/abs-4.2.01-fr/ch07s02.html
# ls
Posté par gaaaaaAab . Évalué à 1.
cf l'option -L
$ ls -l
total 4
drwxrwxr-x 2 gab gab 4096 May 11 2007 dir
-rw-rw-r-- 1 gab gab 0 May 11 2007 file
lrwxrwxrwx 1 gab gab 4 May 11 2007 lien_casse -> yapa
lrwxrwxrwx 1 gab gab 4 May 11 2007 lien_dir -> dir/
lrwxrwxrwx 1 gab gab 4 May 11 2007 lien_file -> file
$ ls -L lien_file >/dev/null 2>&1
$ echo $?
0
$ ls -L lien_dir >/dev/null 2>&1
$ echo $?
0
$ ls -L lien_casse >/dev/null 2>&1
$ echo $?
2
# zsh
Posté par 태 (site web personnel) . Évalué à 3.
liste les liens que tu veux (et en replaçant echo par rm, tu peux les effacer).
Explication :
@ signifie qu'on se restreint aux liens
^ qu'on nie la suite
e: que l'on exécute ce qui suit, soit test si le fichier existe bien.
Je suppose qu'il y a plus court, sans appel à test, mais je ne vois pas.
[^] # Re: zsh
Posté par Xavier Maillard . Évalué à 3.
# merci à tout le monde
Posté par Ju Hash (site web personnel) . Évalué à 1.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.