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

Don Ch
fuente
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.

Snark
fuente
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.

Ales Dolecek
fuente
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 ..
IgorBeaz
fuente
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

Steve Wright
fuente
-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.

Adam Erickson
fuente
¿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.

Xente
fuente
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