Re: Change in behavior to stat(1)
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-unsubscribe@freebsd.org"
討論串 (同標題文章)
完整討論串 (本文為第 2 之 6 篇):