unix - para - mover todos los archivos de un directorio a otro en linux
volver a la ubicación anterior después del comando ''cd''? (4)
Estoy escribiendo un script de shell que necesita cd
a alguna ubicación. ¿Hay alguna forma de volver a la ubicación anterior, es decir, la ubicación antes de ejecutar el cd
?
Otra alternativa es un pequeño conjunto de funciones que puede agregar a su .bashrc que le permiten ir a directorios nombrados:
# cd /some/horribly/long/path
# save spud
# cd /some/other/horrible/path
# save green
...
# go spud
/some/horribly/long/path
Esto está documentado en una herramienta de productividad de navegación de directorio , pero básicamente implica guardar la salida de "pwd" en los mnemónicos nombrados ("spud" y "verde") en el caso anterior, y luego cd''ing al contenido de los archivos.
Puede hacer eco de PWD en una variable y el cd volver a esa variable. Puede ser más silencioso.
Puedes simplemente hacer
cd -
eso lo llevará de regreso a su ubicación anterior.
Algunos shells te permiten usar los comandos pushdir / popdir, echa un vistazo a este sitio . También puede encontrar útil esta pregunta SO .
Si está ejecutando dentro de un script, también puede ejecutar parte del script dentro de un subproceso, que tendrá un valor privado de $ PWD.
# do some work in the base directory, eg. echoing $PWD
echo $PWD
# Run some other command inside subshell
( cd ./new_directory; echo $PWD )
# You are back in the original directory here:
echo $PWD
Esto tiene sus ventajas y desventajas ... aisla muy bien el directorio, pero los subprocesos de desove pueden ser costosos si lo haces mucho. (EDITAR: como señala @Norman Gray a continuación, la penalización de rendimiento de generar el subproceso probablemente no sea muy cara en relación con lo que esté sucediendo en el resto del script)
En aras de la mantenibilidad, normalmente utilizo este enfoque a menos que pueda probar que el script se está ejecutando lentamente debido a ello.