Estoy escribiendo un script de shell que necesita cd
en alguna ubicación. ¿Hay alguna forma de volver a la ubicación anterior, es decir, se ejecutó la ubicación antes de cd
?volver a la ubicación anterior después del comando 'cd'?
Respuesta
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.
Puede hacer eco de PWD en una variable y el cd volver a esa variable. Puede ser más silencioso.
Sí, ¡es una buena idea! –
¿No es ese '$ OLDPWD'? – IsaacS
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.
+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. –
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.
- 1. Ubicación del ejecutable cd
- 2. Volver a la página anterior
- 3. volver a la página anterior
- 4. ¿Quieres volver a la URL anterior?
- 5. Volver a la revisión anterior en Bazar
- 6. Vim - Ir a la ubicación anterior
- 7. SVN: volver a la versión anterior
- 8. Volver a una revisión anterior con TortoiseSVN
- 9. personalizando el comando de cd
- 10. ¿Cómo volver al directorio de trabajo anterior rápidamente en bash?
- 11. ¿Cómo volver a la última confirmación después de verificar una confirmación anterior?
- 12. C# ASP.NET MVC Volver a la página anterior
- 13. Volver a la pantalla anterior sin crear nueva instancia
- 14. opción de cd para cambiar al directorio anterior
- 15. Ejecutar comando de shell en Clojure desde la ubicación específica
- 16. Android: Prevención de volver a la actividad anterior
- 17. F12 Ir al método -> volver al método anterior después de hacer el salto?
- 18. Visual Studio IDE - volver al anterior
- 19. ¿Cómo puedo volver a la ubicación hash actual usando Passport.js?
- 20. Cómo volver al punto anterior en VIM
- 21. Cómo confirmar la finalización del comando anterior en powershell
- 22. volver a calcular la altura del elemento en jQuery después del cambio de clase
- 23. cómo volver a dibujar el indicador zsh después de la acción del widget
- 24. Cómo "cd" a un directorio después de "grep"?
- 25. django, regresar a la página anterior después del formulario POST submit
- 26. ¿Cuál es la tecla de acceso directo para volver a la pestaña anterior?
- 27. ¿Cómo se usa el comando "cd" usando Java runtime?
- 28. Django: redirige a la página anterior después de iniciar sesión
- 29. Referencia stdout (es decir, la salida del comando anterior) rápidamente en bash?
- 30. Git: volver al estado de confirmación anterior
Gracias. ¡El 'pushd' y' popd' funcionarían! :) ¿Pero hay una manera de apagar el eco? (es decir, ¿esos comandos ejecutan 'quiety'?) –
@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
Ya veo. ¡¡¡Gracias!!! –