[patch] rc.d/tmp (silly mkdir usage)

Joerg Sonnenberger joerg at britannica.bec.de
Tue Aug 2 13:25:58 GMT 2005


On Tue, Aug 02, 2005 at 04:08:12PM +0300, Vasil Dimov wrote:
> On Tue, Aug 02, 2005 at 01:15:35PM +0200, Joerg Sonnenberger wrote:
> > On Tue, Aug 02, 2005 at 02:06:32PM +0300, Vasil Dimov wrote:
> > > On Tue, Aug 02, 2005 at 12:52:34PM +0200, Dario Freni wrote:
> > > > Vasil Dimov wrote:
> > > > > Even we can use
> > > > > if [ -d /tmp -a -w /tmp ] ; then
> > > > > or (which is equivalent)
> > > > > if [ -d /tmp ] && [ -w /tmp ] ; then
> > > > > and save external commands (mkdir) execution and directory
> > > > > creation/deletion at all.
> > > > 
> > > > You can't use test -w here. The script is checking if there is a
> > > > read-only filesystem. -w checks only the file flags (according to the
> > > > man page, at least).
> > > > 
> > > That's correct, -w cannot be used to check read-only filesystem.
> > 
> > Actually, you can. That's not portable behaviour though.
> > 
> 
> Well, look what I discovered:

As I said, it is not portable.

> 
> # mount |grep read-only
> /usr/ports on /mnt/ar0s2d/usr/ports5 (nullfs, local, read-only)
> # sh -c '[ -w /mnt/ar0s2d/usr/ports5 ] && echo writeable'
> # bash -c '[ -w /mnt/ar0s2d/usr/ports5 ] && echo writeable'
> writeable

I'd say this is a bug in the bash builtin :-)

Joerg


More information about the freebsd-hackers mailing list