340 votos

Vuelve al directorio anterior en Shell

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

Editar:

"cd -" funciona, pero sólo para los directorios actuales y anteriores. ¿Existe alguna manera de poder volver al directorio anterior como se puede volver en el navegador web?

Saludos

1 votos

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

8 votos

Sólo una nota al margen "cd --" va a la dirección por defecto del usuario (/home/nombredeusuario)

1 votos

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 el OP pidió

457voto

Snark Puntos 23742

cd - (vuelve al directorio anterior)

Si quieres poder ir a los otros directorios anteriores, esto no es posible fuera de la caja. Pero comprueba este guión y las instrucciones:

Historia de los directorios visitados en BASH

El comando cd funciona como siempre. El nuevo es la historia de los últimos 10 directorios y el comando cd ampliado para mostrarlo y acceder a él. cd -- (o simplemente pulsando ctrl+w) muestra la historia. En frente de cada nombre de directorio ves un número. cd -num con el número que quieras salta al directorio correspondiente desde el historia.

25 votos

También pushd y popd podrían ser útiles

7 votos

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

0 votos

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

30voto

Ales Dolecek Puntos 51

También puedes usar la variable cd $OLDPWD . Esto también puede ser usado en los scripts de shell.

7 votos

$OLDPWD mantiene el último directorio desde el que vino, lo que es bueno para scripts. Yo uso mucho $OLDPWD con el comando cp. Por ejemplo cp -v $OLDPWD/archivo .

1 votos

Cabe señalar que el uso de cd $OLDPWD hace no imprimir cualquier cosa en la salida estándar, mientras que cd - parece que suele hacerlo. Esta es una mejor solución para la mayoría de los scripts.

0 votos

¡¡¡No lo creo!!! El cd - es muy útil cuando se trabaja en interactivo Shell para no tener que escribir largos comandos y tener feedback de dónde estás. Pero para Shell debería usar definitivamente $OLDPWD como suelen hacer los scripts no quiere cd ¡para imprimir cualquier cosa en stdout! También el valor de $OLDPWD no tiene por qué utilizarse sólo para volver . Puede, por ejemplo, utilizarlo con ls o comparar con $HOME u otro directorio. La página web POSIX dice que cd - será equivalente a cd "$OLDPWD" && pwd .

2voto

Steve Wright Puntos 21

La forma más fácil de hacerlo es con este power edit del .bashrc: https://github.com/wting/autojump . Puedes "marcar" las carpetas por las que navegas, dándoles un nombre abreviado que sea fácil de recordar (mi consejo; lo anterior no está en los documentos), como por ejemplo Fotos para Fotos, etc. El salto le devuelve a la carpeta que ha "marcado", y las "marcas" enumeran las carpetas que ha añadido a la "pila" (como con pushd y pop d), con la ventaja añadida de que sus notas se mantienen de una sesión a otra, ad infinitum.

Todavía no lo he probado en más de un disco duro, pero los resultados deberían ser similares a los de un solo volumen.

S Wright

0 votos

Gracias por esta solución alternativa. Voy a probar esta herramienta de salto automático.

-5voto

Xente Puntos 1

Creo que cd .. podría ayudar. Si haces un ls -a en cualquier directorio verías que hay dos entradas: una llamada "." y otra llamada ".."; el punto simple es una referencia al directorio en el que ya estás, mientras que el doble es el directorio anterior en el camino.

28 votos

.. no es el directorio anterior, es sólo el directorio padre.

4 votos

Esta respuesta proporciona información útil aunque no responda correctamente a la pregunta. Por lo tanto, no tiene sentido amontonar votos negativos en ella, he votado por el esfuerzo.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: