On Mon, 28 Feb 2011 12:15, stephen@ wrote:
I had a little script that would remove broken links. I used to do it like this:

if ! stat -L $link > /dev/null; then rm $link; fi

But recently (some time in February according to the CVS records) stat was changed so that stat -L would use lstat(2) if the link is broken.

So I had to change it to

if stat -L $link | awk '{print $3}' | grep l > /dev/null;
then rm $link; fi

but it is a lot less elegant.

What is the proper accepted way to remove broken links?

Stephen


You might find sysutils/symlinks interesting. I have been using it a long time and have not had to consider adjusting much in the way of shell scripting to remove dirty links.

 -c == change absolute/messy links to relative
 -d == delete dangling links
 -o == warn about links across file systems
 -r == recurse into subdirs
 -s == shorten lengthy links
 -t == show what would be done by -c
 -v == verbose (show all symlinks)


Quite interesting though how such a little tweak has caused a massive expansion of your command line and required utils.


Good luck,

--

 jhell

_______________________________________________
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "freebsd-stable-unsubscr...@freebsd.org"

Reply via email to