Regrese al directorio anterior en shell


306

¿Hay alguna manera de volver al directorio anterior en el que estábamos usando bash, tcsh sin usar pushd / popd? Me gustaría escribir algo como "atrás" y volver al directorio anterior en el que estaba.

Editar:

"cd -" funciona, pero solo para directorios actuales y anteriores. ¿Hay alguna forma de que pueda volver al directorio anterior anterior anterior, como cómo puede volver al navegador web?

Saludos


1
Como se indica a continuación, puede hacerlo utilizando "pushd" y "popd".
azulado

8
Solo una nota al margen "cd -" va al directorio predeterminado del usuario (/ home / username)
sdaffa23fdsf

1
La mejor respuesta en mi opinión: unix.stackexchange.com/a/180640/158177 proporciona cd -1 a cd -9, que creo que es lo que solicitó el OP
Titou

Respuestas:


413

cd - (vuelve al directorio anterior)

Si desea poder ir a los otros directorios anteriores, esto no es posible de forma inmediata. Pero revise este script e instrucciones:

Historial de directorios visitados en BASH

El comando cd funciona como de costumbre. La nueva característica es el historial de los últimos 10 directorios y el comando cd se expandió para mostrarlo y acceder a él. cd - (o simplemente presionando ctrl + w) muestra el historial. Delante de cada nombre de directorio, verá un número. cd -num con el número que desea salta al directorio correspondiente desde el historial.


20
También pushd y popd podría ser útil
lorenzog

66
@lorenzog: lydonchandra, en su pregunta, dijo "sin usar pushd / popd"
Snark

@ ogc-nick por usar esto cd --en forma de menú, debe usar el script mencionado
Ram

1
@ ogc-nick no, no lo hace. El --simplemente separa un comando y sus opciones de los parámetros (ver esta publicación ). Debido a que no se siguen argumentos después --, el comando final es el cdque cambia a su directorio de inicio. Ese podría haber sido el segundo directorio anterior, pero eso es solo una coincidencia.
Griddo

wow syntactic sugar much
BugWhisperer

24

También puedes usar variable cd $OLDPWD. Esto también se puede usar en scripts de shell.


66
$ OLDPWD mantiene el último directorio del que vino, que es bueno para los scripts. Yo uso $ OLDPWD con el comando cp mucho. Por ejemplo, cp -v $ OLDPWD / file.
Neil Wightman

1

Para Windows (incluido el caso de la consola de solicitud de comandos de Node.js) no funciona cd - Para subir un directorio funciona

cd ..

3
cd .. se mueve al directorio padre, que no es el tema de la pregunta.
ViaSat

1
Esto es bash aquí, no Windows.
Timo

0

Creo que la forma más fácil de hacerlo es con esta edición de energía .bashrc: https://github.com/wting/autojump . Puede "marcar" carpetas a las que navega, dándoles un nombre abreviado que es fácil de recordar (mi consejo; lo anterior no está en los documentos), como Fotos para imágenes, etc. 'jump' lo regresa a la carpeta que 'marcado' y 'marcas' enumera las carpetas que ha agregado a la 'pila' (como con pushd y pop d), con la ventaja adicional de que sus marcas permanecen iguales de una sesión a la siguiente, hasta el infinito.

Todavía tengo que probarlo en más de un disco duro, pero los resultados deberían ser similares a los de un solo volumen.

S Wright


-1

Si ha bajado el árbol de directorios y desea volver a subir, cd ..es mi favorito personal. Puede saltar dentro de una rama del árbol con bastante facilidad cd ..subiendo un directorio y cd ../..dos y cd ../../..tres, etc. También puede subir y bajar una rama diferente con el mismo comando, como cd ../../exampleo cd ../../../example/exampleetc. Para un cambio simple que va de ida y vuelta entre directorios, cd -o $OLDPWDson sus mejores apuestas, como han mencionado otros.


¿Alguna razón particular por la cual esto fue rechazado? Contiene respuestas correctas, aunque quizás no sean las únicas.
Adam Erickson

-2

Creo que cd ..podría ayudar. Si hace un ls -aen cualquier directorio, verá que hay dos entradas: una llamada "." y otro llamado ".."; el punto único es referencia al directorio en el que ya está, mientras que el doble es el directorio anterior en la ruta.


22
..no es el directorio anterior, es solo el directorio padre.
Der Hochstapler

44
Esta respuesta proporciona información útil incluso si no responde correctamente la pregunta. Por lo tanto, no tiene sentido acumular votos negativos, voté por el esfuerzo.
Titou

1
Esto no es Berkley, no hay premios especiales solo por participación
nathanchere
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.