¿Cómo puedo deshacer el último comando de CD?


77

¿Hay alguna forma de volver al directorio de trabajo anterior después de hacer un cddirectorio diferente?

Mi caso de uso es que estoy atravesando una estructura de directorios para un proyecto Java, y espero que el directorio actual tenga solo un subdirectorio. Entonces, escribo cdy golpeo Taby Enterbastante rápido. Sin embargo, Tabfalló, ya que erróneamente esperaba un subdirectorio, cuando en realidad hay más. Así que ahora, acabo de ejecutar cd, y ahora estoy en mi directorio de inicio, en lugar del proyecto Java. ¿Hay alguna forma de "deshacer" esto cdy volver al directorio en el que estaba?

Respuestas:


130

Puede usar cd -para volver a su ubicación anterior, sin importar dónde estaba.


10
Bueno ... incluso después de años en Ubuntu no lo sabía. Gracias
andybleaden

19

cd - es ideal para retroceder un nivel, pero si desea retroceder algunos niveles, consulte este script:

acd_func.sh

Es genial. cd --para ver tu historial y cd -3retroceder 3 niveles, por ejemplo.


Wow ... un enlace geocities. Ahora hay una URL que no he visto en mucho tiempo. <insertar Obi-wan JPG>
Michael Butler

1
La esencia de este comentario. <jpg Yoda insert>
Donbhupi


5

Además, cd ..puede llevarlo de regreso al directorio principal del directorio de trabajo y luego, si es necesario, el comando puede repetirse hasta llegar a donde desea estar. De hecho, cada vez que se evoca, lo lleva de vuelta al árbol de directorios, que finalmente terminaría en /(el directorio raíz) si simplemente repitiera el comando.

Por el contrario , en cd -realidad hace que el directorio de trabajo anterior sea el directorio de trabajo actual (que se conoce como .) y con qué ubicación exacta en el sistema de archivos se puede encontrar pwd.

Por lo tanto cd .., y cd - puede ser útil en diferentes circunstancias en las que la navegación por el árbol de directorios, a pesar de que no difieren en los aspectos antes mencionados. Quizás el comando más útil después de divertirse experimentando con estos dos comandos es cd, que lo regresa a la carpeta de inicio.


-1

La mejor manera de hacer esto para regresar es cd -, sin embargo, si desea omitir muchos niveles a la vez, es mejor usarlo cd ..para un nivel cd ../.., para dos, cd ../../..para tres y más ... una buena manera de hacerlo rápido es esto guión:

#!/bin/bash
printf "Number of folders to move back: "
read TIMES
BACKCHARS=../
BACK=$(for i in `seq $TIMES`; do printf $BACKCHARS; done)
cd $BACK

1
La ejecución cdde un script no afecta al shell principal. Tendría que poner esto en una función de shell para que sea útil.
wjandrea

así:up(){ local n="$1"; while ((n--)); do path+='../'; done; cd "$path"; }
wjandrea
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.