Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Recherche de liens symboliques

4 réponses
Avatar
Bulot Grégory
Bonjour,

suite probl=E8me pour copier mon /etc/ dans /mnt/LvmEtc, j'en profite pour =
poser=20
les questions suivantes (qui me trotte dans la t=EAte depuis un moment )


=2D Je cherche le moyen de trouver tous les liens symboliques =E0 partir de=
/ ,=20
de /etc, ... tant pis si la liste est longue

=2D Je cherche le moyen de trouver uniquement les symboliques 'cass=E9s'

s'il existe une solution sans passer par find (long et lourd en terme de=20
ressource) je pr=E9f=E8re (j'ai regarder le man locate, l'option -P ne me=20
convient pas, ou je ne sais pas m'en servir)



Note :=20
au sujet de mon /etc/ dans /mnt/LvmEtc, au cas ou quelqu'un a le temps de m=
e=20
filer la r=E9ponse :

# cp -aux /etc/* /mnt/LvmEtc (idem avec cp -pRux)
# du -sh /mnt/LvmEtc /etc
13M /mnt/LvmEtc
11M /etc

pourquoi la copie est plus grosse que l'original ? des liens convertit en=20
fichier ? d'o=F9 mes 2 premi=E8res questions.


Merci

4 réponses

Avatar
RoboTux
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Bulot Grégory wrote:
Bonjour,

suite problème pour copier mon /etc/ dans /mnt/LvmEtc, j'en profite pour poser
les questions suivantes (qui me trotte dans la tête depuis un moment )


- Je cherche le moyen de trouver tous les liens symboliques à partir de / ,
de /etc, ... tant pis si la liste est longue



Bon la réponse est trop simple donc cela ne doit pas être ça mais
sait-on jamais : ls -Rl ne ferait pas ce que tu veux par hasard ?

- Je cherche le moyen de trouver uniquement les symboliques 'cassés'



Là par contre je dirais un petit script bash qui fait un test
d'existence sur les fichiers pointés par la sortie de la commande citée
plus haut.

Du genre for i in ls -lR do
ls -E `readlink i`
done

(Je suis loin d'être un expert en script shell, les experts me
corrigeront. Néanmoins j'ai peur que ce soit du même acabit que find
puisqu'il est dit dans le man que cela regarde les fichiers n'existant
pas à l'instant de l'exécution, (comme find quoi). Du coup la solution
ce serait de comparer la sortie de readlink i avec ls -R / (ou locate).

Des gens pour compléter ?

RoboTux

- --




Ma clé GPG est disponible sur http://www.keyserver.net (0x2B8BE385)

Protégez votre vie privée :
- - Signez/chiffrez vos messages.
Respectez celle des autres :
- - Masquez les destinataires de vos mailings
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.3 (GNU/Linux)

iD8DBQFEZGMNXBAlpiuL44URAs1jAJsGWOgOV3diaqEkjzKMpe44P2S77gCfZgYN
c4bKbDq6ANFLDYwnUdHBFIc DYk
-----END PGP SIGNATURE-----


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Bulot Grégory
--Boundary-00=_9wKZEiiEUUpJA86
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

Je reposte mes réponses (après un problème de follow up redirigé ve rs Robotux
au lieu de la liste, je vois pas mes messages passer sur la liste), désol é si
au final ça passe après ce message.


Le Vendredi 12 Mai 2006 12:27, RoboTux a écrit :

Bon la réponse est trop simple donc cela ne doit pas être ça mais
sait-on jamais : ls -Rl ne ferait pas ce que tu veux par hasard ?



j'avais absolument pas pensé à cela, bien que
ls -Rl | grep "^l" serait plus pertinent (à mon goût)
mais je n'ai pas le chemin du liens (celui auquel il est lié oui)

ls -Rl /etc/ | grep "^l"
[...]
lrwxrwxrwx 1 root root 9 2006-04-18 07:41 dvorak -> ../dvorak

ce trouve dans /etc/X11/xkb/symbols/macintosh/dvorak alors que la sortie
précédante laisse supposer que cela se trouve dans le chemin courant / base
de la recherche



> - Je cherche le moyen de trouver uniquement les symboliques 'cassés'

Là par contre je dirais un petit script bash qui fait un test
d'existence sur les fichiers pointés par la sortie de la commande cit ée
plus haut.

Du genre for i in ls -lR do
ls -E `readlink i`
done



l'option -E n'est pas connue chez moi


(Je suis loin d'être un expert en script shell, les experts me



idem !

néanmoins je poste mon script shell (avec find ...., c'est long sur mon P II)
pour la postérité ;-)

lancé comme ceci :
# TestLiensMorts.sh /etc
Voir mieux si dans /etc/cron.daily/ :
TestLiensMorts.sh /etc | mail -s "Liste des liens mort" postmaster

--Boundary-00=_9wKZEiiEUUpJA86
Content-Type: application/x-shellscript;
name="TestLiensMorts.sh"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
filename="TestLiensMorts.sh"

#!/bin/bash

case "$1" in
"Existance"|"link"|"islink")
lien=$(readlink $2)
if [ -a "$lien" ]
then
echo " existe " >/dev/null
else
echo -e "$lien t ne pointe plus sur $2 "
fi
;;
"search"|"debut")
find /etc/webalizer -type l -exec $0 Existance '{}' ;
;;
"")
echo "pas de paramètre !!"
echo "$0 search|islink|[chemin de base de la recherche]"
echo "veuillez choisir une option :"
echo "search : pour chercher tous les liens"
echo "islink : pour vérifier si un fichier donné est un lien valide"
echo "[chemin de base de la recherche] : exemple /etc ou /home ...."
;;
*)
find $1 -type l -exec $0 Existance '{}' ;
;;
esac

--Boundary-00=_9wKZEiiEUUpJA86--


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Bruno Muller
Bonsoir,

Le vendredi 12 mai 2006 à 11:30 +0200, Bulot Grégory a écrit :
suite problème pour copier mon /etc/ dans /mnt/LvmEtc, j'en profite pou r poser
les questions suivantes (qui me trotte dans la tête depuis un moment )


- Je cherche le moyen de trouver tous les liens symboliques à partir de / ,
de /etc, ... tant pis si la liste est longue

- Je cherche le moyen de trouver uniquement les symboliques 'cassés'

s'il existe une solution sans passer par find (long et lourd en terme de
ressource) je préfère (j'ai regarder le man locate, l'option -P ne me
convient pas, ou je ne sais pas m'en servir)



apt-cache show symlinks
...
Description: scan/change symbolic links
Symlinks scans directories for symbolic links and lists
them on stdout. Each link is prefixed with a classification
of relative, absolute, dangling, messy, lengthy or other_fs.
.
Symlinks can also convert absolute links (within the same filesystem)
to relative links and can delete messy and dangling links.


Bruno

--
SNIF ? SNIF ?
P : Tu lui renifles les couilles pour savoir qui c'est ?
M : Nan...
P : Alors pourquoi ?
M : Juste pour lui foutre la honte...
Avatar
Bulot Grégory
Le Vendredi 12 Mai 2006 21:26, Bruno Muller a écrit :
apt-cache show symlinks



ouahhh

je pense que je dois filtrer sur le mot 'dangling' ? sur les quelques tests
que j'ai fait cela semble cela, mais j'aimerais une confirmation quand mê me