¿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
$
Utilizando el shell sh
(no bash
), ¿qué comando en Linux/UNIX imprime mi directorio actual?
$ *showmewhereiam*
/sys/kernel/debug
$
Prueba con pwd
.
$ pwd
/home/<username>
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
$ pwd
/your/current/directory
$
pwd
proviene del directorio de trabajo print.
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.
(…)
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.