[Toybox] Add remaining pwd options
Rob Landley
rob at landley.net
Sun Dec 30 15:47:46 PST 2012
On 12/30/2012 05:16:41 AM, Felix Janda wrote:
> On 12/30/12 at 04:43am, Rob Landley wrote:
> POSIX contains many surprises. In the section on environment
> variables it
> says that $PWD should be set if "pwd -P" was specified. What happens
> if an
> error happens seems unspecified.
Translation: pwd must be a shell builtin running within the shell's
process ID, and cannot sanely be implemented any other way.
It would be nice if they would just _identify_ these. I did a pass to
find them (in the roadmap), but missed this.
> > Sigh. And the whole "PWD defaults to -P unless POSIXLY_CORRECT"
> thing
> > above: while I'm sure that code is in there, it's not actually what
> > it's doing here. Because GNU code is INSANE, and someone somewhere
> > thought this tangle of corner cases might help somehow.
> >
> > Right, in the case of a deleted directory $PWD is all we've got, so
> > have -L (which is the default) print it but first validate it's an
> > absolute path with no .. in it. Only validate that current directory
> > and path directory point to the same place if there IS a current
> > directory. If that's not what they want, -P exists.
>
> In the corner case shouldn't pwd (-L and -P) just give an error
> message?
> ($PWD does not contain an absolute pathname of the current working
> directory.)
If something deletes the directory you're working in, "cd .." should
work if the directory above you exists. That can't happen if $PWD isn't
there.
Also, when a directory gets deleted and recreated I do cd "$(pwd)" all
the time. It's useful to still have pwd if some other process takes out
the directory you're in.
Rob
1356911266.0
More information about the Toybox
mailing list