GNU/Linux >> Tutoriales Linux >  >> Linux

$pwd? (frente al directorio de trabajo actual)?

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


Linux
  1. Error de Shell-init al recuperar el directorio actual [Fijar]

  2. Pwd sin enlaces simbólicos?

  3. ¿Cómo ejecuto un programa con un directorio de trabajo diferente al actual, desde el shell de Linux?

  4. ¿Cómo configuro el directorio de trabajo del proceso principal?

  5. Shell script directorio actual?

El comando pwd de Linux

Comando Pwd en Linux (directorio de trabajo actual)

Encuentre el directorio de trabajo actual de un proceso usando Pwdx en Linux

¿Cómo imprimir el directorio de trabajo usando el comando pwd de Linux?

¿Directorio actual abreviado en el indicador de Shell?

sudo -i pero mantener el directorio de trabajo actual