[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: RFC: Change pwd to assume -L by default
From: |
Bob Proulx |
Subject: |
Re: RFC: Change pwd to assume -L by default |
Date: |
Tue, 1 Jul 2014 13:02:08 -0600 |
User-agent: |
Mutt/1.5.23 (2014-03-12) |
Jim Meyering wrote:
> Pádraig Brady wrote:
> > POSIX says that `pwd` without options should assume -L is specified.
Hmm... It does? If so I think that is a bad thing in the standard
since it does not standardize existing behavior but requires an
incompatible change to it. Existing behavior of /bin/pwd has always
been to print the canonical path.
> > pwd is most often invoked as a shell builtin and bash, dash, zsh, ksh
> > all follow POSIX and assume that -L is the default.
> > However coreutils pwd assumes -P is the default, according to this
> > comment in the source:
> >
> > "POSIX requires a default of -L, but most scripts expect -P."
I still think that is true. I think most usage of /bin/pwd expects it
to be -P not -L. This is separate from the usage of the shell builtin.
> When I wrote the original pwd.c, the standard was
> POSIX 1003.2-1992, and someone had actually sent
> me hard copy for Volumes 1 and 2. I've just checked (still have them)
> and see it says simply to print "an absolute pathname of the current
> working directory", so I made it call xgetcwd and print that.
>
> I think it's fine to make -L the default, now. As you say, it will make
> our version conform to the newer standard and eliminate a small
> source of incompatibility between the modern built-ins and exec'd
> versions of this command. Any time we make such a change, there
> is a risk of causing a script to malfunction, but I think very few scripts
> exec pwd, and fewer still would malfunction with this change.
I disagree. I think most people expect that /bin/pwd produces the
canonical path. I think changing it to print $PWD as the shell
builtin does is a bad idea since it will go against long standing
usage. I think if users were polled it would show that most people
have the built in pwd defaulting to -L and therefore explicitly
execute /bin/pwd in order to escape that logical illusion and to
return the canonical path.
I think this very small thing is actually a huge change in legacy
behavior. Please don't do it.
Bob
- Re: RFC: Change pwd to assume -L by default, Bernhard Voelker, 2014/07/01
- Re: RFC: Change pwd to assume -L by default,
Bob Proulx <=
- Re: RFC: Change pwd to assume -L by default, Jim Meyering, 2014/07/01
- Re: RFC: Change pwd to assume -L by default, Bob Proulx, 2014/07/01
- Re: RFC: Change pwd to assume -L by default, Pádraig Brady, 2014/07/02
- Re: RFC: Change pwd to assume -L by default, Jim Meyering, 2014/07/02
- Re: RFC: Change pwd to assume -L by default, Bob Proulx, 2014/07/02
- Re: RFC: Change pwd to assume -L by default, Eric Blake, 2014/07/02