On Wed, 11 Aug 2004, Simon Bowden wrote:

Possibly only lowercase relative links:
if [ -L "$file" -a "${file:0:1}" != "/" ]; then
 ...

Oops, I'm going to be pedantic. This should be: mv "$file" "$newname" if [ -L "$file" ]; then target=$(ls -l "$file" | sed 's/^.* -> //' if [ "${target:0:1}" != "/" ]; then newtarget=$(echo "$target" | tr A-Z a-z) ln -sf "$newtarget" "$newname" fi fi

Since $file is the symlink name, not the target name.

Extra pedant - I also realised we should use a raw read:
find ... | while read -r file ; do ...

since then the filenames with backslash escapes in them (which probably
wouldn't be there, but still...).

Errr, k, nuff now :) Fun with shell.

Cheers,

 - Simon
--
SLUG - Sydney Linux User's Group Mailing List - http://slug.org.au/
Subscription info and FAQs: http://slug.org.au/faq/mailinglists.html

Reply via email to