#1 Le 28/10/2023, à 15:33
- benney
[astuce] maintenance liens symboliques (modification en masse)
bonjour,
suite au déplacement de répertoire vers un disque amovible, je me retrouve avec un grand nombre de liens symboliques brisés.
Je souhaiterais au sein de ce disque amovible réparer les liens suivant le scripte écrit par MicP (cf. discussion)
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
dans mon cas je souhaites directement corriger la racine de mes liens en y insérant des répertoires lors du renommage. Je ne souhaite faire les réparation que dans un répertoire et sous répertoires et non dans l'ensemble des disques et partition montée
ceci m'inquiète un peu. d'autant que je ne suis pas sûr que cette commande parcours l'ensemble des disques dur, mais je ne suis pas sûr qu'elle parcours les disques dur externe !
- dans le la commande ci-dessus de remplacer "ancien_nom_repertoire" par la chaine de caractère du répertoire en respectant son ancien nom. dans le cas /home/moi/
- dans le la commande ci-dessus de remplacer "nom_repertoire"par la chaine de caractère actuelle du répertoire vers laquelle les liens symboliques doivent pointer. dans le cas /media/ben/4a6b-281ea27b0529/Donnees-moi/
Dernière modification par benney (Le 27/04/2025, à 11:23)
PC : - Lubuntu 24.04 LTS
- AMD Athlon(tm) II X2 250 Processor × 2 ; mémoire : 2,7 Gio - Disque : 211,9 Gio
Portable : Kubuntu 24.04 LTS
- msi CX62 6QD | Intel® Core™ i3-6100H ; mémoire : 4 Go ; disque : 250 Go
Hors ligne
#2 Le 28/10/2023, à 16:07
- Watael
Re : [astuce] maintenance liens symboliques (modification en masse)
<hors sujet>
find "$chemin" -xtype l -print0 | while read -d '' -r nomLien; do
par précaution, au cas où un nom de fichier comporterait un retour chariot (on ne sait jamais!).
</hors sujet>
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#3 Le 30/10/2023, à 12:40
- benney
Re : [astuce] maintenance liens symboliques (modification en masse)
j'ai refait un test sur la version initial, au premier passage c'est Ok, mais si je relance le scipt il ne se conclu (peut-être) jamais et la CPU est de plus en plus occuppé, par contre sur mon test les modifications ont été appliqué !
merci Watael
donc la syntaxe alternative pour prendre en compte les retour chariot serait :
avant="ancien_nom_repertoire"; apres="nom_repertoire"; read -p "Donnez le chemin du répertoire : " chemin; find "$chemin" -xtype l -print0 | while read -d '' -r nomLien; do ln -sf "$(readlink "$nomLien" | sed "s#/$avant/#/$apres/#")" "$nomLien"; done
Dernière modification par benney (Le 23/11/2023, à 20:25)
PC : - Lubuntu 24.04 LTS
- AMD Athlon(tm) II X2 250 Processor × 2 ; mémoire : 2,7 Gio - Disque : 211,9 Gio
Portable : Kubuntu 24.04 LTS
- msi CX62 6QD | Intel® Core™ i3-6100H ; mémoire : 4 Go ; disque : 250 Go
Hors ligne