Na maioria dos shells, incluindo o bash, pwd
é um shell embutido:
$ type -a pwd
pwd is a shell builtin
pwd is /bin/pwd
Se você usar /bin/pwd
, deverá usar a opção -L
para obter o mesmo resultado que o pwd
:
$ ln -s . test
$ cd test && pwd
/home/cuonglm/test
$ /bin/pwd
/home/cuonglm
$ /bin/pwd -L
/home/cuonglm/test
Por padrão, /bin/pwd
ignora links simbólicos e imprime o diretório atual.
Em info pwd
:
'-L'
'--logical'
If the contents of the environment variable 'PWD' provide an
absolute name of the current directory with no '.' or '..'
components, but possibly with symbolic links, then output those
contents. Otherwise, fall back to default '-P' handling.
'-P'
'--physical'
Print a fully resolved name for the current directory. That is,
all components of the printed name will be actual directory
names--none will be symbolic links.
O pwd
incorporado inclui o symlink por padrão, exceto que a opção -P
é usada ou o -o physical
set builtin está ativado.
Em man bash
:
pwd [-LP]
Print the absolute pathname of the current working directory.
The pathname printed contains no symbolic links if the -P option
is supplied or the -o physical option to the set builtin command
is enabled. If the -L option is used, the pathname printed may
contain symbolic links. The return status is 0 unless an error
occurs while reading the name of the current directory or an
invalid option is supplied.