2011-06-21 10:31:01 +0000 2011-06-21 10:31:01 +0000
37
37

¿Qué comando del shell sh de Linux/UNIX me devuelve el directorio actual?

Utilizando el shell sh (no bash), ¿qué comando en Linux/UNIX imprime mi directorio actual?

$ *showmewhereiam*
/sys/kernel/debug
$

Respuestas (4)

60
60
60
2011-06-21 10:32:09 +0000

Prueba con pwd.

$ pwd
/home/<username>
11
11
11
2011-06-21 12:48:02 +0000

Aunque la respuesta general es pwd, tenga en cuenta que esto puede dar diferentes resultados dependiendo de cómo haya llegado a un determinado directorio, y de si la ruta incluye enlaces simbólicos.

Por ejemplo, si tiene un directorio llamado real y un enlace simbólico a ese directorio llamado virtual, y usted cd al directorio virtual, entonces pwd mostrará ese nombre de directorio virtual, aunque el directorio real en el que se encuentra sea real.

Para mostrar el directorio real subyacente, utilice pwd -P o readlink -f (para una ruta arbitraria):

$ mkdir real $ ln -s real virtual $ cd virtual $ pwd /home/_username_/tmp/virtual $ pwd -P /home/_username_/tmp/real $ readlink -f . /home/_username_/tmp/real

Tenga en cuenta que los shells a menudo reemplazan el comando pwd con su propia versión interna, así que en mi sistema (RHEL6), aunque la página del manual de pwd(1) sugiere que --physical funcionará tan bien como -P, porque estoy ejecutando bash, no lo hace:

$ pwd --physical bash: pwd: --: invalid option pwd: usage: pwd [-LP] $ /bin/pwd --physical /home/_username_/tmp/real $ /usr/bin/env pwd --physical /home/_username_/tmp/real
1
1
1
2017-02-20 09:13:21 +0000
$ pwd
/your/current/directory
$

pwd proviene del directorio de trabajo print.

De la página man de Linux:

Nombre

pwd - imprimir el nombre del directorio actual/de trabajo

Sinopsis

pwd [OPCIÓN]…

Descripción

Imprime el nombre completo del directorio de trabajo actual.

-L , –lógico

utilizar el PWD del entorno, incluso si contiene enlaces simbólicos

-P , –physical

evitar todos los enlaces simbólicos

–help

mostrar esta ayuda y salir

–version

mostrar la información de la versión y salir

NOTA: su shell puede tener su propia versión de pwd, que normalmente sustituye a la versión descrita aquí. Consulte la documentación de su shell para conocer las opciones que admite.

(…)

1
1
1
2011-06-21 13:24:23 +0000

Como han dicho otros, pwd suele hacer el trabajo suficientemente bien. Sin embargo, me gustaría añadir una idea que me ha ayudado.

En todos los shells de uso común hoy en día, puedes personalizar la apariencia del símbolo del sistema. A mí me gusta personalizar la mía para que me muestre tanto el nombre del ordenador en el que estoy como mi directorio de trabajo. De este modo, siempre sé dónde estoy. (La parte del nombre del ordenador me ayuda a darme cuenta de si la ventana de terminal que estoy usando ha sido utilizada para SSH en un servidor remoto). Por ejemplo, cuando abro una nueva ventana de terminal en mi portátil, a la que llamo Plástico, veo esto

Plastico ~> cd Desktop/
Plastico ~/Desktop> cd ~/Sites/raygunrobot.com
Plastico ~/Sites/raygunrobot.com> cd /usr
Plastico /usr>

Puedes ver que está abreviando mi directorio personal como ~. Me parece que hacer esto para mis indicaciones de la terminal es increíblemente práctico - siempre sé de un vistazo dónde estoy exactamente, incluso más que mirando una ventana del Finder.

En tcsh, lo hago añadiendo set prompt = 'Plastico %~%# ' a mi archivo .tcshrc en mi directorio principal. También lo he hecho en ksh añadiendo export PS1="Plastico $PWD $ " a mi archivo .profile. Pero siendo un usuario de Linux, probablemente uses Bash, con el que no tengo mucha experiencia (soy un bicho raro así). Pero parece que podría hacerlo añadiendo PS1="Plastico \w $ " a mi archivo .bashrc.

Edición: Acabo de notar que el OP dice que está interesado en sh, no en bash. Oh, bueno; espero que la gente encuentre esto útil a pesar de todo.