Mandriva Fórum

Programování => Shell, awk, sed ... => : Ged March 01, 2011, 14:39:43



: oprava chybnych symlinků
: Ged March 01, 2011, 14:39:43
Menil jsem strukturu dat pod linuxem a potreboval bych zmenit i chybne symlinky.

Mam knihovnu e-book-u a z ni mam vytvoreny pomoci symlinku seznam toho co bych chtel precist. Behem presunu se mi vsak symlinky "znefunkcnily".

Napsal jsem jednoduchy skript, ktery to napravi, akrorat je to sileny bastl.

Neporadil by nekdo jak to napsat jednoduseji, efektivneji?

V podstate potrebuji u vsech symlinku zmenit retezec "/mnt\/data/books" za "/home/jakub/Knihy"

:
find . -type l | while read F; do ln -s "$(file "$F" | awk --field-separator='`' '{print $2}' | sed s/\'$// | sed 's#\/mnt\/data\/books#\/home\/jakub\/Knihy#')";done

Jako bonus bych jeste chtel zapracovat moznost, kdy symlinky nejsou v aktualnim adresari, ale v jeho podadresarich.

Sorry uz jsem to na foru resi, ale nedoresil.

Dekuji.

Uran