Entonces Wikipedia (enlace) me dice que el comando pwd
es la abreviatura de "directorio de trabajo de impresión", y eso tiene sentido.
Pero para la variable de entorno, la "P" tiene que ser un acrónimo de algo más que imprimir.
Escucho a la gente hablar sobre el "directorio de trabajo actual", que suena mejor y es más intuitivo, pero aún así la variable de entorno parece llamarse $PWD y no $CWD. Nadie dice nunca "¿Revisaste la variable del directorio de trabajo de impresión?".
Actualmente estoy jugando con el servidor de aplicaciones web uWSGI, y cuando lo ejecuto me dice (en la página de estadísticas de uWSGI):
"cwd":"/home/velle/greendrinks",
entonces obviamente les gusta el (acrónimo más intuitivo) cwd
sobre pwd
.
Supongo que estoy tratando de averiguar si entendí mal algo, o si es solo una cuestión de haberle dado a la variable de entorno un nombre poco intuitivo.
Respuesta aceptada:
Eso depende de lo que estés haciendo. En primer lugar, $PWD
es una variable de entorno y pwd
es un shell integrado o un binario real:
$ type -a pwd
pwd is a shell builtin
pwd is /bin/pwd
Ahora, el bash incorporado simplemente imprimirá el valor actual de $PWD
a menos que use el -P
bandera. Como se explica en help pwd
:
pwd: pwd [-LP]
- Imprime el nombre del directorio de trabajo actual.
Opciones:
-L
- imprime el valor de
$PWD
si nombra el directorio de trabajo actual
-P
- imprime el directorio físico, sin enlaces simbólicos
Por defecto, 'pwd' se comporta como si se hubiera especificado '-L'.
El pwd
binary, por otro lado, obtiene el directorio actual a través de getcwd(3)
llamada al sistema que devuelve el mismo valor que readlink -f /proc/self/cwd
.
Para ilustrar, trate de moverse a un directorio que es un enlace a otro:
$ ls -l
total 4
drwxr-xr-x 2 terdon terdon 4096 Jun 4 11:22 foo
lrwxrwxrwx 1 terdon terdon 4 Jun 4 11:22 linktofoo -> foo/
$ cd linktofoo
$ echo $PWD
/home/terdon/foo/linktofoo
$ pwd
/home/terdon/foo/linktofoo
$ /bin/pwd
/home/terdon/foo/foo
Entonces, en conclusión, en sistemas GNU (como Ubuntu), pwd
y echo $PWD
son equivalentes a menos que use el -P
opción, pero /bin/pwd
es diferente y se comporta como pwd -P
.
Fuente https://askubuntu.com/a/476633/291937