Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 26 Apr 2013 16:17:27 +0200
From:      Jilles Tjoelker <jilles@stack.nl>
To:        Joshua Isom <jrisom@gmail.com>
Cc:        freebsd-hackers@freebsd.org
Subject:   Re: Some improvements to rm(1)
Message-ID:  <20130426141726.GA85955@stack.nl>
In-Reply-To: <517A8242.6090509@gmail.com>
References:  <CAF6rxg=5aAyk88KcbuGhG1Nwn5HdYqMiaT7umX2EOLApDwOk4Q@mail.gmail.com> <20130426025049.GC50623@lor.one-eyed-alien.net> <CAF6rxgm6J63M7JO4%2BxqwPNu1KwTrmEiOK5YKT5hYXb5yEag0Zg@mail.gmail.com> <20130426122214.GA9086@stack.nl> <CAF6rxgnyOizqdkkG2q17z6uk7=tLyO6WqyzzE-xsgd_Q2a8Gbw@mail.gmail.com> <517A8242.6090509@gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Apr 26, 2013 at 08:33:54AM -0500, Joshua Isom wrote:
> On 4/26/2013 7:23 AM, Eitan Adler wrote:
> > Yes, rm's functionality can be fully replicated by find.

> As well as anything using -R.

Emulating other -R things using find becomes quite slow when you don't
want to impose {PATH_MAX} limits or open up symlink-based race windows
because the only safe option is -execdir UTILITY {} \;. Any find command
based on -exec, -print or -print0 passes pathnames which are subject to
{PATH_MAX} limits and directories concurrently replaced with symlinks.

The construct -execdir ... {} + is unusably broken in older FreeBSD
versions and gives no advantage compared to -execdir ... {} \; in recent
-CURRENT.

With -L, this is not a new problem because symlinks are followed anyway
and the underlying code (fts(3)) always imposes the {PATH_MAX} limit in
that case.

The -delete primary is safe like -execdir.

I'm not entirely sure about this because the rm(1) patch is simple and
the new syntax is fairly clear.

-- 
Jilles Tjoelker



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20130426141726.GA85955>