Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 28/03/2021, à 10:25

benney

[resolu] réparation, nettoyage, maintenance lien symbolique

merci à MicP et autre participant.e de la discussion.

action du script : il corrige en masse les conséquences d'un renommage de dossier qui casse les liens symboliques dirigeant vers lui, ses sous-répertoires et fichiers. 

- dans le la commande ci-dessous remplacez "ancien_nom_repertoire" par la chaîne de caractère du répertoire en respectant son ancien nom. cf exemple Tota
- dans le la commande ci-dessous remplacez "nom_repertoire"par la chaîne de caractère actuelle du répertoire vers laquelle les liens symboliques doivent pointer. cf exemple 0 toto
- puis lancer la commande dans un terminal

avant="ancien_nom_repertoire"; apres="nom_repertoire"; read -p "Donnez le chemin du répertoire : " chemin; find "$chemin" -xtype l | while IFS= read -r nomLien; do ln -sf "$(readlink "$nomLien" | sed "s#/$avant/#/$apres/#")" "$nomLien"; done

- il vous posera la question :

Donnez le chemin du répertoire :

- donner le chemin complet jusqu'au répertoire à modifier ; cf exemple /home/mon home/Documents/
- valider et attendre jusqu'à correction de l'ensemble des liens symbolique

exemple : un répertoire racine p.exp "/home/ben/Documents/Tota" dans lequel j'ai travaillé et crée des liens symbolique (nombreux, très nombreux) pointant vers le contenu de ses sous-répertoire.
Je choisi de corriger mon répertoire en /home/ben/Documents/0 toto ; c’était une faute de frappe et un besoin de bien le classer. Du coup ceci impact le chemin de toutes les cibles qu'il contient (répertories et fichiers!)

Pour comprendre le fonctionnement de ce script : voir les posts #29 et suivant

----

Bonjour,

dans xfce4-terminal des liens symbolique brisés apparaissent en rouge et quand ils sont valide en bleu
la commande ls -i donne sont idone qu'il soit brisé ou pas.
Ai-je bien compris la fonction de ce n° d'idone ? Est-il bien la localisation vers le fichier cible ?

Existe-il une fonction pour que via un terminal on puisse lire le chemin brisé ou valide d'un lien symbolique contenu dans un dossier ? à la manière de "propriété" d'un lien symbolique dans Dolphin" qui permets d'afficher la ligne "pointe vers" ?

Ainsi est-il possible de corriger le chemin d'un lien symbolique via un terminal ?

Cordialement

Dernière modification par benney (Le 26/10/2022, à 09:55)


PC : - multi-boot : Xfce 22.04 LTS 
       - AMD Athlon(tm) II X2 250 Processor × 2 ; mémoire : 2,7 Gio - Disque : 211,9 Gio
Portable : Kubuntu 22.04
       - Intel® Core™ i3-6100H ; mémoire : 4 Go ; disque : 250 Go

Hors ligne

#2 Le 28/03/2021, à 10:51

nany

Re : [resolu] réparation, nettoyage, maintenance lien symbolique

Bonjour,



benney a écrit :

Ai-je bien compris la fonction de ce n° d'idone ? Est-il bien la localisation vers le fichier cible ?

Non, tu n’as pas bien compris. Il y a une différence entre « lien physique » et « lien symbolique » et le lien symbolique en l’occurrence possède son propre inode (et non idone wink).

benney a écrit :

Existe-il une fonction pour que via un terminal on puisse lire le chemin brisé ou valide d'un lien symbolique contenu dans un dossier ? à la manière de "propriété" d'un lien symbolique dans Dolphin" qui permets d'afficher la ligne "pointe vers" ?

ls -l
benney a écrit :

Ainsi est-il possible de corriger le chemin d'un lien symbolique via un terminal ?

Oui, en recréant le fichier cible.

Dernière modification par nany (Le 28/03/2021, à 10:51)

En ligne

#3 Le 28/03/2021, à 11:33

benney

Re : [resolu] réparation, nettoyage, maintenance lien symbolique

Merci

nany a écrit :

le lien symbolique en l’occurrence possède son propre inode wink.

Ok c'est donc les coordonnées dans le disque dur du lien symbolique comme objet !

nany a écrit :
benney a écrit :

Existe-il une fonction pour que via un terminal on puisse lire le chemin brisé ou valide d'un lien symbolique contenu dans un dossier ? à la manière de "propriété" d'un lien symbolique dans Dolphin" qui permets d'afficher la ligne "pointe vers" ?

ls -l

.

Cette info n'est me semble-t-il pas sur la page de doc ! wink

nany a écrit :
benney a écrit :

Ainsi est-il possible de corriger le chemin d'un lien symbolique via un terminal ?

Oui, en recréant le fichier cible.

J'ai utilisé :

ln -s dossier_cible nom_du_lien

mais j'ai un message d'erreur ! sad

ln: impossible de créer le lien symbolique 'Les diamants…': Le fichier existe

faut-il le supprimer puis le récréer ?


PC : - multi-boot : Xfce 22.04 LTS 
       - AMD Athlon(tm) II X2 250 Processor × 2 ; mémoire : 2,7 Gio - Disque : 211,9 Gio
Portable : Kubuntu 22.04
       - Intel® Core™ i3-6100H ; mémoire : 4 Go ; disque : 250 Go

Hors ligne

#4 Le 28/03/2021, à 12:00

nany

Re : [resolu] réparation, nettoyage, maintenance lien symbolique

benney a écrit :

Ok c'est donc les coordonnées dans le disque dur du lien symbolique comme objet !

Oui, voilà.

benney a écrit :

Cette info n'est me semble-t-il pas sur la page de doc ! wink

En effet car le propos n’est pas ls mais ln.
Tu trouveras plus de détails sur la commande ls dans cette page de doc : tutoriel/console_commandes_de_base (§2.2).

benney a écrit :

J'ai utilisé :

ln -s dossier_cible nom_du_lien

mais j'ai un message d'erreur ! sad

ln: impossible de créer le lien symbolique 'Les diamants…': Le fichier existe

faut-il le supprimer puis le récréer ?

Non, c’est dossier_cible qu’il faut recréer.

Petit exemple :

┏[ dimanche 28 mars 2021 ]
┣ nany@stupidcomputer :
┗▶ ~$ mkdir Test

┏[ dimanche 28 mars 2021 ]
┣ nany@stupidcomputer :
┗▶ ~$ ln -s Test Autre_Test

┏[ dimanche 28 mars 2021 ]
┣ nany@stupidcomputer :
┗▶ ~$ ls -l Autre_Test
lrwxrwxrwx 1 nany nany 4 mars  28 12:45 Autre_Test -> Test

┏[ dimanche 28 mars 2021 ]
┣ nany@stupidcomputer :
┗▶ ~$ rmdir Test

┏[ dimanche 28 mars 2021 ]
┣ nany@stupidcomputer :
┗▶ ~$ ls -l Autre_Test
lrwxrwxrwx 1 nany nany 4 mars  28 12:45 Autre_Test -> Test

┏[ dimanche 28 mars 2021 ]
┣ nany@stupidcomputer :
┗▶ ~$ mkdir Test

┏[ dimanche 28 mars 2021 ]
┣ nany@stupidcomputer :
┗▶ ~$ ls -l Autre_Test
lrwxrwxrwx 1 nany nany 4 mars  28 12:45 Autre_Test -> Test

┏[ dimanche 28 mars 2021 ]
┣ nany@stupidcomputer :
┗▶ ~$

Bon, ce n’est pas très concluant comme alors je mets une capture d’écran pour voir les changement de couleur quand le lien est cassé et quand il est réparé :
1616929125.png
↑↑Pour afficher cette image, il faut accepter l’exception pour pix.cyber-nux.fr (du moins le temps qu’ils renouvellent leur certificat).
↓↓L’image ci-dessous est susceptible d’être supprimée après deux mois.
mini_210328072935379684.png

Dernière modification par nany (Le 28/03/2021, à 18:30)

En ligne

#5 Le 28/03/2021, à 13:39

erresse

Re : [resolu] réparation, nettoyage, maintenance lien symbolique

@nany: Il y a un problème pour voir ton image, l'accès est refusé avec le message :

Attention : risque probable de sécurité

Firefox a détecté un problème et a interrompu le chargement de pix.cyber-nux.fr. Soit le site est mal configuré, soit l’horloge de votre ordinateur est réglée à la mauvaise heure.

Le certificat du site a probablement expiré, ce qui empêche Firefox d’établir une connexion sécurisée. Si vous visitez ce site, des attaquants pourraient dérober des informations telles que vos mots de passe, vos adresses électroniques ou vos informations de carte bancaire.

Que pouvez-vous faire ?

Le problème vient probablement du site web, vous ne pouvez donc pas y remédier. Vous pouvez le signaler aux personnes qui administrent le site.

Tu pourrais poster sur un autre site hébergeur, ou savoir pourquoi on a droit à cette page d'erreur ?


Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois résolu, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.

Hors ligne

#6 Le 28/03/2021, à 13:42

xubu1957

Re : [resolu] réparation, nettoyage, maintenance lien symbolique

Bonjour,

soit l’horloge de votre ordinateur est réglée à la mauvaise heure.
Bandeau d'accueil du forum a écrit :

Passage à l'heure d'été : n'oubliez pas de cocher la case « Ajustement pour l'heure d'été » dans votre profil !

C'est pas l'heure d'été ?


Conseils pour les nouveaux demandeurs et pas qu'eux
Important : Pensez à passer vos sujets en [Résolu] lorsque ceux-ci le sont, au début du titre en cliquant sur Modifier sous le premier message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.                   Membre de Linux-Azur

Hors ligne

#7 Le 28/03/2021, à 13:50

erresse

Re : [resolu] réparation, nettoyage, maintenance lien symbolique

xubu1957 a écrit :

Bonjour,

soit l’horloge de votre ordinateur est réglée à la mauvaise heure.
Bandeau d'accueil du forum a écrit :

Passage à l'heure d'été : n'oubliez pas de cocher la case « Ajustement pour l'heure d'été » dans votre profil !

C'est pas l'heure d'été ?

Vu et corrigé, j'avais oublié de mettre le forum à l'heure d'été...


Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois résolu, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.

Hors ligne

#8 Le 28/03/2021, à 18:35

nany

Re : [resolu] réparation, nettoyage, maintenance lien symbolique

erresse a écrit :

@nany: Il y a un problème pour voir ton image, l'accès est refusé

Post précédent édité : j’ai mis aussi sur casimages et donné les explications.

En ligne

#9 Le 04/04/2021, à 13:42

benney

Re : [resolu] réparation, nettoyage, maintenance lien symbolique

Merci aux un est aux autres pour les retours

nany a écrit :

En effet car le propos n’est pas ls mais ln.
Tu trouveras plus de détails sur la commande ls dans cette page de doc : tutoriel/console_commandes_de_base (§2.2).

merci wink

nany a écrit :

Non, c’est dossier_cible qu’il faut recréer.
[…]
Bon, ce n’est pas très concluant comme alors je mets une capture d’écran pour voir les changement de couleur quand le lien est cassé et quand il est réparé :
https://pix.cyber-nux.fr/upload/thumb/1616929125.png
↑↑Pour afficher cette image, il faut accepter l’exception pour pix.cyber-nux.fr (du moins le temps qu’ils renouvellent leur certificat).
↓↓L’image ci-dessous est susceptible d’être supprimée après deux mois.
https://nsa40.casimages.com/img/2021/03/28/mini_210328072935379684.png

Dans mon cas j'ai déplacé un répertoire et je voudrais corriger le lien symbolique pour qu'il pointe vers la nouvelle destination tel que ci-dessous mais qui n'a pas l'air concluant

ben@ben-desktop:~$ cd Images/test/
ben@ben-desktop:~/Images/test$ mkdir Test
ben@ben-desktop:~/Images/test$ ln -s Test Autre_Test
ben@ben-desktop:~/Images/test$ mkdir Sous_Test
ben@ben-desktop:~/Images/test$ mv Test/ Sous_Test/
ben@ben-desktop:~/Images/test$ ls -l Autre_Test
lrwxrwxrwx 1 ben ben 4 avril  4 14:21 Autre_Test -> Test
ben@ben-desktop:~/Images/test$ ls -s Sous_Test/Test/ Autre_Test 
0 Autre_Test

Sous_Test/Test/:
total 0
ben@ben-desktop:~/Images/test$ ls -l Autre_Test
lrwxrwxrwx 1 ben ben 4 avril  4 14:21 Autre_Test -> Test
ben@ben-desktop:~/Images/test$ 

Faut-il une capture d'écran ?


PC : - multi-boot : Xfce 22.04 LTS 
       - AMD Athlon(tm) II X2 250 Processor × 2 ; mémoire : 2,7 Gio - Disque : 211,9 Gio
Portable : Kubuntu 22.04
       - Intel® Core™ i3-6100H ; mémoire : 4 Go ; disque : 250 Go

Hors ligne

#10 Le 04/04/2021, à 16:14

erresse

Re : [resolu] réparation, nettoyage, maintenance lien symbolique

Désolé, on ne peut pas modifier la cible d'un lien symbolique (un lien physique non plus d'ailleurs), il faut le détruire et le recréer avec la nouvelle cible.


Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois résolu, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.

Hors ligne

#11 Le 05/04/2021, à 09:52

nany

Re : [resolu] réparation, nettoyage, maintenance lien symbolique

benney a écrit :

Dans mon cas j'ai déplacé un répertoire et je voudrais corriger le lien symbolique pour qu'il pointe vers la nouvelle destination

Dans ce cas, comme dit erresse, on est obligé de supprimer le lien pour le recréer :

┏[ dimanche 04 avril 2021 ]
┣ nany@stupidcomputer :
┗▶ ~$ mv Test Sous_Test/

┏[ dimanche 04 avril 2021 ]
┣ nany@stupidcomputer :
┗▶ ~$ ls -l Autre_Test 
lrwxrwxrwx 1 nany nany 4 mars  28 12:45 Autre_Test -> Test

┏[ dimanche 04 avril 2021 ]
┣ nany@stupidcomputer :
┗▶ ~$ ln -s Sous_Test/Test Autre_Test
ln: impossible de créer le lien symbolique 'Autre_Test': Le fichier existe

┏[ dimanche 04 avril 2021 ]
┣ nany@stupidcomputer :
┗▶ ~$ rm -v Autre_Test
'Autre_Test' supprimé

┏[ dimanche 04 avril 2021 ]
┣ nany@stupidcomputer :
┗▶ ~$ ln -s Sous_Test/Test Autre_Test

┏[ dimanche 04 avril 2021 ]
┣ nany@stupidcomputer :
┗▶ ~$ ls -l Autre_Test 
lrwxrwxrwx 1 nany nany 14 avril  4 19:33 Autre_Test -> Sous_Test/Test

┏[ dimanche 04 avril 2021 ]
┣ nany@stupidcomputer :
┗▶ ~$ 

En ligne

#12 Le 10/04/2021, à 16:10

benney

Re : [resolu] réparation, nettoyage, maintenance lien symbolique

Ah zut sad
merci  pour le retour.

C'est noté,
a) il n'est donc possible de faire en ligne de commande ce qui peut se faire via Dolphin via "propriété" d'un lien symbolique brisé qui permet d'afficher la ligne "pointe vers" et de la modifier pour le réparer ! sad
C'est dommage, ceci aurait pu permettre d'espérer de réparer les liens cassés de façon groupé autre que un par un via "propriété". Ceci c'est produit a plusieurs reprise sur un grand nombre de lien symbolique suite à un choix de déplacement et de renommage de répertoire ;
b) Il n'est donc pas possible également de lister tous les liens symboliques brisés ? Pour faire une opération  de maintenance il faut donc parcourir les répertoire un a un et les réparer quand on croise un lien brisé !

Y a-t-il une alternative à Dophin pour les points décris en a) et b) ?


PC : - multi-boot : Xfce 22.04 LTS 
       - AMD Athlon(tm) II X2 250 Processor × 2 ; mémoire : 2,7 Gio - Disque : 211,9 Gio
Portable : Kubuntu 22.04
       - Intel® Core™ i3-6100H ; mémoire : 4 Go ; disque : 250 Go

Hors ligne

#13 Le 10/04/2021, à 17:47

Coeur Noir

Re : [resolu] réparation, nettoyage, maintenance lien symbolique

Bah je dirais que c'est un des intérêts des liens symboliques. C'est statique, pas dynamique. Si la cible n'existe plus ( ou a été déplacée ) le lien est brisé, mais le lien existe toujours tel qu'il a été créé.
Et ce lien fonctionnera à nouveau si on recrée ou replace la cible.
Ça permet de modifier autant qu'on veut la cible, sans avoir à toucher au lien qui permet d'y accéder. Ou de « détacher » temporairement une cible d'un lien, le temps qu'on travaille sur cette cible.

Existe-t-il une forme de « lien dynamique » dont le chemin cible serait toujours à jour ? Mmm… oui, c'est le lien pas symbolique, le « hard » ou direct ou physique.
Celui-là a un autre fonctionnement, bien plus « complexe » à gérer, visuellement. Et ne concernera que des fichiers, pas des dossiers et à l'intérieur d'une même partition.
Disons que tu as un « fichier » A, et des liens « durs » B, C, D qui pointent la cible A.
Tant qu'un tel lien existe vers A, la ressource sur le disque ( son inode ) correspondant à A demeure.
Tant que B, C ou D existent, tu peux même effacer A, car eux pointent vers la ressource sur le disque, l'inode ( et non à travers un chemin logique, logiciel, symbolique ).
Pour que la ressource - l'inode, physique - correspondant à A disparaisse du disque, il faut que plus rien - côté logique, logiciel - ne pointe vers elle.

Dolphin - contrairement à la plupart des autres explorateurs de fichiers - crée des liens ( symboliques ) dans le sens intuitif :
ici, dans le dossier où on se trouve, crée un lien qui cible là-bas tel fichier ou dossier. Ce qui permet en « graphique » de créer des liens qui ciblent des systèmes de fichiers non-unix.
⋅ ailleurs que dans Dolphin, ça sera l'autre sens qui sera privilégié : il faut se placer là-bas côté cible, et le lien est créé « à côté » de la cible, dans le même dossier, reste à déplacer ce lien où bon te semble, et le renommer, éventuellement. Inconvénient majeur : ça empêche de créer des liens « en visuel » depuis des systèmes de fichiers non-unix ( on ne peut pas écrire un tel lien sur NTFS/×Fat ). Dans ce cas, il faut passer par la commande. Ou ( si Nautilus ou un de ses forks ) via glisser-déposer à la souris tout en maintenant enfoncées les touches [ ctrl ] + [ maj ].

Bref Y a-t-il une alternative à Dolphin pour les points décrits en a) et b) ?
Pour a) pas vraiment d'alternative - si ce n'est effacer le lien cassé pour le remplacer par un valide. On ne peut pas « ré-écrire » sur un lien puisqu'il emmène vers un autre fichier, on ne peut que ré-écrire cet autre fichier cible, tant qu'il existe.
Pour b) selon le type de lien il y a des commandes pour « sourcer » les liens ( voir readlink --help ) ou afficher le nombre de liens ( physiques ) associés à un inode ( ls -li et find avec l'option -inum ).
Voir http://tech.beugreloulou.ci/linux-les-l … mboliques/https://www.lostsaloon.com/technology/h … -in-linux/
( désolé j'ai pas mis la doc' ubuntu-fr.org/lien_physique_et_symbolique car à l'état d'ébauche, donc confuse ).


DébuterDocBien rédigerRetour commandeInsérer image | illustrations & captures d'écran <>

Hors ligne

#14 Le 10/04/2021, à 19:11

nany

Re : [resolu] réparation, nettoyage, maintenance lien symbolique

a) Pas mieux que Coeur Noir.

b) J’ai pondu ça :

echo "Donnez le chemin du répertoire à tester." ; read chemin ; find -L -D stat "$chemin" -type l -maxdepth 1 -ls 2>&1 | awk 'BEGIN{f=0} {if (/failed/) {f=1 ; getline} ; if (f==1) {print "Lien brisé: "$11,$12,$13;f=0}}'

À essayer.

En ligne

#15 Le 10/04/2021, à 20:36

beuguissime

Re : [resolu] réparation, nettoyage, maintenance lien symbolique

Salut,

J'ai lu en diagonale, je ne crois pas que ceci ait déjà été dit. Désolé si je répète ou si HS.

En passant, on peut écraser un lien (symbolique) avec l'option f de ln, éventuellement combiné avec l'option n.

$ mkdir essai

$ ln -sv essai essai_lien           # essai_lien pointe vers essai
'essai_lien' -> 'essai'

$ ls -l
total 4
drwxrwxr-x 2 beuguissime beuguissime 4096 avril 10 21:30 essai
lrwxrwxrwx 1 beuguissime beuguissime    5 avril 10 21:30 essai_lien -> essai

$ mkdir trial

$ ln -sv trial/ essai_lien/      # Attention, sans l'oblique, ln crée le lien dans essai_lien, càd dans essai. Voir apprès
ln: failed to create symbolic link 'essai_lien/trial': File exists

$ ln -sv trial/ essai_lien     # Sans l'oblique final, ln créer le lien dans la cible du lien essai_lien
'essai_lien/trial' -> 'trial/'

$ ln -svfn trial/ essai_lien   # Avec les options f et n, on écrase le lien
'essai_lien' -> 'trial/'

$ ls -l
total 8
drwxrwxr-x 2 beuguissime beuguissime 4096 avril 10 21:30 essai
lrwxrwxrwx 1 beuguissime beuguissime    6 avril 10 21:30 essai_lien -> trial/
drwxrwxr-x 2 beuguissime beuguissime 4096 avril 10 21:30 trial

Hors ligne

#16 Le 10/04/2021, à 23:41

Coeur Noir

Re : [resolu] réparation, nettoyage, maintenance lien symbolique

  -f, --force                 supprimer les fichiers de destination existants
  -n, --no-dereference        traiter NOM_LIEN comme un fichier normal s'il s'agit d'un lien symbolique vers un répertoire

Y-a-t-y pas un risque d'effacer la cible, s'il ne s'agit pas d'un répertoire ?
Si c'est pour remplacer un lien ( cassé ) dont la cible n'existe plus, ok, mais être sûr de la situation au préalable.

Les liens, c'est super, mais ça peut vite devenir un casse tête ;-) à utiliser en toute connaissance de cause.

Dernière modification par Coeur Noir (Le 10/04/2021, à 23:43)


DébuterDocBien rédigerRetour commandeInsérer image | illustrations & captures d'écran <>

Hors ligne

#17 Le 11/04/2021, à 03:17

beuguissime

Re : [resolu] réparation, nettoyage, maintenance lien symbolique

Oui Coeur Noir, en cas d'erreur dans la commande, il y a un risque d'effacer un fichier régulier. Il faut s'assurer que c'est bien le lien cassé qui est passé en argument. Tu fais bien de le faire remarquer.

Hors ligne

#18 Le 01/05/2021, à 10:15

benney

Re : [resolu] réparation, nettoyage, maintenance lien symbolique

Bonjour, merci pour la poursuite de la discussion ; si elle n'est pas trop ancienne
@

nany a écrit :

b) J’ai pondu ça :

echo "Donnez le chemin du répertoire à tester." ; read chemin ; find -L -D stat "$chemin" -type l -maxdepth 1 -ls 2>&1 | awk 'BEGIN{f=0} {if (/failed/) {f=1 ; getline} ; if (f==1) {print "Lien brisé: "$11,$12,$13;f=0}}'

.

donc dans un terminal en copiant ce code j'obtiens un message mais je n'arrive pas à comprendre sad ce que je dois faire avec  ! sad

ben@ben-desktop:~/Images$ echo "Donnez le chemin du répertoire à tester." ; read chemin ; find -L -D stat "$chemin" -type l -maxdepth 1 -ls 2>&1 | awk 'BEGIN{f=0} {if (/failed/) {f=1 ; getline} ; if (f==1) {print "Lien brisé: "$11,$12,$13;f=0}}'
Donnez le chemin du répertoire à tester.
Autre_Test 
ben@ben-desktop:~/Images$  

Pour les autres post, qui suivent cette proposition, du fait du risque d’écrasement il vaut mieux la laisser à des utilisateurs averties ?


PC : - multi-boot : Xfce 22.04 LTS 
       - AMD Athlon(tm) II X2 250 Processor × 2 ; mémoire : 2,7 Gio - Disque : 211,9 Gio
Portable : Kubuntu 22.04
       - Intel® Core™ i3-6100H ; mémoire : 4 Go ; disque : 250 Go

Hors ligne

#19 Le 01/05/2021, à 10:28

FrancisFDZ

Re : [resolu] réparation, nettoyage, maintenance lien symbolique

Bonjour,
Encore maintenant j'ai du mal à différencier "lien" (commande "ln") et "lien symbolique" (commande "ln -s"). J'ai décidé une fois pour toute de n'utiliser que des liens symboliques, un point c'est tout, et je ne m'en trouve pas plus mal.


-- On peut avoir des raisons de se plaindre et n'avoir pas raison de se plaindre --
[Victor Hugo]

Hors ligne

#20 Le 01/05/2021, à 15:46

erresse

Re : [resolu] réparation, nettoyage, maintenance lien symbolique

benney a écrit :

donc dans un terminal en copiant ce code j'obtiens un message mais je n'arrive pas à comprendre sad ce que je dois faire avec  ! sad

Tu obtiens d'abord une question pour saisir le chemin vers le répertoire que tu veux scanner. Ensuite, la commande te retourne le(s) éventuel(s) lien(s) symbolique(s) CASSÉS rencontrés dans ce répertoire.
Comme la commande ne te retourne rien, ça veut juste dire qu'il n'y a pas de lien cassé dans ce répertoire "Autre_Test", voilà tout.
Si veux vérifier le fonctionnement de la commande, renomme un fichier sur lequel il y a un lien symbolique et relances la commande, tu verras alors le lien listé comme cassé.

FrancisFDZ a écrit :

Encore maintenant j'ai du mal à différencier "lien" (commande "ln") et "lien symbolique" (commande "ln -s").

En fait, tu as raison d'utiliser les liens symboliques car ils ne sont pas limités autrement que par l'existence de la cible pointée. On peut sans problème créer des liens qui pointent vers des objets situés dans d'autres volumes et pas seulement dans le même volume que l'objet pointé.
Pour la compréhension de ce qui différencie un lien "physique" d'un lien "symbolique", je te conseille de considérer que SEUL le lien symbolique EST un lien, puisqu'il y a bien un objet séparé qui contient un pointeur vers un autre objet. Ces deux objets existent séparément l'un de l'autre, ce qui explique que le lien puisse être CASSÉ lorsque l'objet ciblé n'existe plus ou change de nom.
Considère a contrario que le lien physique N'EST PAS un lien, mais un AUTRE NOM, pour un seul et même objet qui en possède plusieurs. C'est bien pour cela qu'on ne peut pas créer un "lien physique" pour un objet situé dans un autre volume.
Chaque nom définit le même objet unique complètement, d'où la particularité de ne pas pouvoir supprimer l'objet tant que l'un de ses noms existe encore, il ne disparaît effectivement que lorsqu'on supprime son DERNIER nom.

Dernière modification par erresse (Le 01/05/2021, à 15:48)


Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois résolu, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.

Hors ligne

#21 Le 25/10/2022, à 11:04

benney

Re : [resolu] réparation, nettoyage, maintenance lien symbolique

bonjour avec du retard !

erresse a écrit :
benney a écrit :

donc dans un terminal en copiant ce code j'obtiens un message mais je n'arrive pas à comprendre sad ce que je dois faire avec  ! sad

Tu obtiens d'abord une question pour saisir le chemin vers le répertoire que tu veux scanner. Ensuite, la commande te retourne le(s) éventuel(s) lien(s) symbolique(s) CASSÉS rencontrés dans ce répertoire.
Comme la commande ne te retourne rien, ça veut juste dire qu'il n'y a pas de lien cassé dans ce répertoire "Autre_Test", voilà tout.
Si veux vérifier le fonctionnement de la commande, renomme un fichier sur lequel il y a un lien symbolique et relances la commande, tu verras alors le lien listé comme cassé.

FrancisFDZ a écrit :

Encore maintenant j'ai du mal à différencier "lien" (commande "ln") et "lien symbolique" (commande "ln -s").

je viens de faire un test avec la commande de

nany

mais le résulatat m'étonne ?

ben@ben:~/Documents/test$ ls -l
total 8
lrwxrwxrwx 1 ben ben   27 oct.  25 11:26  re-test -> /home/ben/Documents/re-test
drwxrwxr-x 2 ben ben 4096 oct.  25 11:25 "re-test'"
drwxrwxr-x 2 ben ben 4096 oct.  25 11:29  test
ben@ben:~/Documents/test$ echo "Donnez le chemin du répertoire à tester." ; read chemin ; find -L -D stat "$chemin" -type l -maxdepth 1 -ls 2>&1 | awk 'BEGIN{f=0} {if (/failed/) {f=1 ; getline} ; if (f==1) {print "Lien brisé: "$11,$12,$13;f=0}}'
Donnez le chemin du répertoire à tester.
~/Documents/test
ben@ben:~/Documents/test$ 

n'aurais-je pas du avoir un résultat ? tel que cela est dans la première partie de mon retour : commande

ls -l

dans le répertoire testé ?


PC : - multi-boot : Xfce 22.04 LTS 
       - AMD Athlon(tm) II X2 250 Processor × 2 ; mémoire : 2,7 Gio - Disque : 211,9 Gio
Portable : Kubuntu 22.04
       - Intel® Core™ i3-6100H ; mémoire : 4 Go ; disque : 250 Go

Hors ligne

#22 Le 25/10/2022, à 11:45

MicP

Re : [resolu] réparation, nettoyage, maintenance lien symbolique

Bonjour

benney a écrit :

…
Donnez le chemin du répertoire à tester.
~/Documents/test
…

… n'aurais-je pas du avoir un résultat ? …

Oui, mais c'est le caractère tilde (~) qui n'est pas interprété par la commande find
il te faudra plutôt donner le chemin absolu correspondant à ~/Documents/test pour que ça fonctionne => /home/ben/Documents/test

=======
Tu peux aussi utiliser cette ligne de commandes :

echo "Donnez le chemin du répertoire à tester."; read chemin; find "$chemin" -xtype l -exec echo "Lien brisé : " {} \;

Dernière modification par MicP (Le 25/10/2022, à 11:58)

Hors ligne

#23 Le 25/10/2022, à 11:53

ylag

Re : [resolu] réparation, nettoyage, maintenance lien symbolique

Bonjour,

Il y aurait aussi le bon vieux symlinks qui peut retracer, et même supprimer les liens brisés ; j'utilise une commande du genre de :

sudo symlinks -vr / | grep -i dangling

...pour en voir une éventuelle liste de liens brisés smile

man symlinks a écrit :

DESCRIPTION
       symlinks is a useful utility for maintainers of FTP sites, CDROMs, and Linux software dis‐
       tributions.  It scans directories for symbolic links and lists them on stdout,  often  re‐
       vealing flaws in the filesystem tree.

(Désolé pour l'anglais ...)

A+

Dernière modification par ylag (Le 25/10/2022, à 11:54)

Hors ligne

#24 Le 25/10/2022, à 12:17

benney

Re : [resolu] réparation, nettoyage, maintenance lien symbolique

Merci

MicP a écrit :
benney a écrit :

…
Donnez le chemin du répertoire à tester.
~/Documents/test
…

… n'aurais-je pas du avoir un résultat ? …

Oui, mais c'est le caractère tilde (~) qui n'est pas interprété par la commande find
il te faudra plutôt donner le chemin absolu correspondant à ~/Documents/test pour que ça fonctionne => /home/ben/Documents/test

=======
Tu peux aussi utiliser cette ligne de commandes :

echo "Donnez le chemin du répertoire à tester."; read chemin; find "$chemin" -xtype l -exec echo "Lien brisé : " {} \;

oui des résultats ! smile

La commande donne la liste des liens brisés du répertoire et de ces sous répertoires, renseigné après lancement de la commande. La commande demande demande "Donnez le chemin du répertoire à tester." de renseigner par son  chemin absolu correspondant.

echo "Donnez le chemin du répertoire à tester."; read chemin; find "$chemin" -xtype l -exec echo "Lien brisé : " {} \;

La commande donne la liste des liens brisés suivi (-->) par la source inexistante, du répertoire renseigné après lancement de la commande. La commande demande demande "Donnez le chemin du répertoire à tester." de renseigner par son  chemin absolu correspondant.

echo "Donnez le chemin du répertoire à tester." ; read chemin ; find -L -D stat "$chemin" -type l -maxdepth 1 -ls 2>&1 | awk 'BEGIN{f=0} {if (/failed/) {f=1 ; getline} ; if (f==1) {print "Lien brisé: "$11,$12,$13;f=0}}'

La commande de Nany n'analyse pas les sous répertoire à la différente de la tienne ?
est-ce normal ?


PC : - multi-boot : Xfce 22.04 LTS 
       - AMD Athlon(tm) II X2 250 Processor × 2 ; mémoire : 2,7 Gio - Disque : 211,9 Gio
Portable : Kubuntu 22.04
       - Intel® Core™ i3-6100H ; mémoire : 4 Go ; disque : 250 Go

Hors ligne

#25 Le 25/10/2022, à 12:26

benney

Re : [resolu] réparation, nettoyage, maintenance lien symbolique

merci

ylag a écrit :

Il y aurait aussi le bon vieux symlinks qui peut retracer, et même supprimer les liens brisés ; j'utilise une commande du genre de :

sudo symlinks -vr / | grep -i dangling

...pour en voir une éventuelle liste de liens brisés smile

Le sudo est-il indispensable ?
la commande donne l'ensemble de lien depuis la racine alors que je me suis placé dans un répertoire de test :-(
(mon anglais n'est pas bon O:) )


PC : - multi-boot : Xfce 22.04 LTS 
       - AMD Athlon(tm) II X2 250 Processor × 2 ; mémoire : 2,7 Gio - Disque : 211,9 Gio
Portable : Kubuntu 22.04
       - Intel® Core™ i3-6100H ; mémoire : 4 Go ; disque : 250 Go

Hors ligne