Portál AbcLinuxu, 16. června 2025 17:29
ln -s /home/public /media/hdc5
#!/bin/bash readlink $1 | grep '/media/hdc5/' > /dev/null && ln -s $1 `readlink $1 | sed 's/\/media\/hdc5\//\/home\/public\//' -` #readlink $1 | grep '/media/hdc5/' > /dev/null && echo $1 `readlink $1 | sed 's/\/media\/hdc5\//\/home\/public\//' -`Dejte mu právo spuštění a spusťte ho přes find:
chmod u+x relink.sh find . -type l -exec ./relink.sh \{\} \;Asi to jde nějak napsat jako inliner bez toho skriptu, ale to si můžete udělat za domácí úkol
ln
naživo na to pusťte až si budete jistý, že to funguje správně.
ln -s /home/public /media/hdc5protože při přesunutí dat z hdc5 na /home/public došlo v některých případech i k drobným změnám v adresářové struktuře a po úpravě tohoto skriptu bych mohl opravit i linky vedoucí do těchto "nových" umístění. Díky moc, večer vyzkouším a dám vědět.
readlink $1 | grep '/media/hdc5/' > /dev/null && ln -s `readlink $1 | sed 's/\/media\/hdc5\//\/home\/public\//' -` $1
Odzkoušeno a vše funguje přesně podle mých představ.Fakt? To mne samotného překvapuje
prohození parametrů lnS tím, který parametr
ln
je který jsem měl problémy vždycky. Ale poslední dobou už jsem si poměrně jistý, že první parametr je název existujícího souboru a druhý je název nově vytvořeného linku. I man ln
mi dává za pravdu. Ale možná je problém v tom, jak jsem pochopil požadavek co kam se má nalinkovat. Hlavně, že vám to funguje…
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.