Date: Mon, 28 Feb 2011 17:39:10 -0500 From: jhell <jhell@DataIX.net> To: Stephen Montgomery-Smith <stephen@missouri.edu> Cc: FreeBSD Stable <freebsd-stable@freebsd.org> Subject: Re: Change in behavior to stat(1) Message-ID: <alpine.BSF.2.00.1102281732260.67308@qvfongpu.qngnvk.ybpny> In-Reply-To: <4D6BD83B.3040609@missouri.edu> References: <4D6BD83B.3040609@missouri.edu>
next in thread | previous in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?alpine.BSF.2.00.1102281732260.67308>