Obtener el directorio desde el que se llamó el script


Respuestas:


11

Cuando invoca un comando en el shell, el nuevo proceso hereda el directorio de trabajo del padre. Aquí hay dos formas de obtener el directorio de trabajo:

echo "$PWD" # variable
pwd         # builtin command

1

Por "directorio desde el que se llamó" parece que se refiere a su directorio de trabajo. Puede cambiar esto dentro del script usando, por ejemplo cd, pero antes de hacerlo, pwdlo imprimirá. También es probable que esté en la variable$PWD

Si necesita el directorio de trabajo inicial después de cambiarlo, simplemente guárdelo en la parte superior de su script (antes de cambiarlo)

#!/bin/bash
initial_wd=`pwd`

# ... do a lot of stuff ...
# ⋮

cd "$initial_wd"

Si está utilizando esto para volver al directorio en el que comenzó, consulte también pushdy popd.


3
En bash, también hay "$ OLDPWD".
jordanm

@jordanm De hecho lo hay, pero ese no será necesariamente el directorio de trabajo inicial (por ejemplo, si lo ha usado cddos veces)
derobert

$ OLDPWD es lo que necesito; Ejecuté scripts de bash desde CMD Prompt en Win7 y esta fue la variable de entorno que contenía el directorio desde el que ejecuté el script. Saludos
Darren Bishop
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.