2012-05-18 18 views

Respuesta

39

Usted puede simplemente hacer

cd - 

que le llevará de nuevo a su ubicación anterior.

Algunos shells le permiten usar comandos pushdir/popdir, check out this site. También puede encontrar este SO question útil.

+0

Gracias. ¡El 'pushd' y' popd' funcionarían! :) ¿Pero hay una manera de apagar el eco? (es decir, ¿esos comandos ejecutan 'quiety'?) –

+2

@OneTwoThree No sé, ya que suelo usar 'cd -'. Sin embargo, siempre puedes hacer algo como 'pushd>/dev/null' para solucionarlo. Si está poniendo esto en una secuencia de comandos, puede haber una opción para silenciar su caparazón. – Levon

+0

Ya veo. ¡¡¡Gracias!!! –

1

Puede hacer eco de PWD en una variable y el cd volver a esa variable. Puede ser más silencioso.

+0

Sí, ¡es una buena idea! –

+0

¿No es ese '$ OLDPWD'? – IsaacS

3

Si ejecuta dentro de una secuencia de comandos, también puede ejecutar parte de la secuencia de comandos 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 ... lo hace muy bien aislar el directorio, pero el desove subprocesos puede ser caro si lo estás haciendo mucho. (EDITAR: como @Norman Gray señala 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)

Por razones de mantenimiento, Por lo general, uso este enfoque a menos que pueda probar que el script se ejecuta lentamente debido a ello.

+0

+1 en principio, pero ¿has medido un golpe de rendimiento? Como cada comando que no es un shell incorporado hará un fork, dudo que el tenedor de una subcapa pueda incurrir en una penalización de rendimiento significativa. –

0

Otra alternativa es un pequeño conjunto de funciones que se pueden agregar a su .bashrc que le permite ir a los 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 A directory navigation productivity tool, pero básicamente consiste en guardar la salida de " pwd "en los mnemónicos nombrados (" spud "y" green ") en el caso anterior, y luego cd'ing al contenido de los archivos.

Cuestiones relacionadas