La consola de Linux - cambiar directorios rápidamente
¿Alguna vez has sufrido la incomodidad de trabajar simultáneamente con dos directorios? Imagina por ejemplo que estás trabajando con /var/www/coches/images y /home/gorka/documentos/webs/imagenes y que necesitas estar cambiando constantemente de uno a otro. Esto se puede solucionar de varias formas, por ejemplo
- Abrir dos terminales o una terminal con dos pestañas (CTRL+MAYS+T para abrir una nueva pestaña) y en cada una tener un directorio.
Pero la que voy a tratar ahora es mediante el uso de los comandos pushd y popd. El comando pushd funciona de la siguiente forma:
pushd .
y lo que hace es añadir a una pila el directorio indicado (en este caso el directorio actual ‘.’). Luego popd nos permite recuperar ese directorio de la pila. Vamos a verlo en un ejemplo (el comando pwd muestra el directorio actual):
$ pwd /home/gorka/documentos/webs/imagenes $ pushd . cd / $ pwd / $ popd $ pwd /home/gorka/documentos/webs/imagenes
Para ver qué directorios tenemos en pila podemos usar dirs. Por ejemplo:
dirs /home/gorka/documentos/webs/imagenes /
El problema de pushd y popd es que cada vez que hacemos una llamada a popd quitamos el elemento de la pila y tendremos que volver a añadirlo. Esta es la razón que me hacÃa dudar de la utilidad de estos comandos. Sin embargo, hace poco Asier (un conocido) me sugirió este ‘truquillo’:
Si usamos dirs asÃ:
dirs +1
tendremos el primer elemento de la pila. De esta forma podemos usar:
cd `dirs +1`
y nos llevará al primer directorio que tenemos almacenado.
Curiosamente no me funciona cuando en la ruta del directorio está mi directorio ‘home’, que al guardar queda representado como ‘~’. Por ejemplo si hago:
cd $HOME pushd . cd / cd `dirs +1`
El resultado será:
bash: cd: ~: No existe el fichero ó directorio
Seguiré investigando para ver cuál puede ser el problema ¿Alguien tiene alguna pista?

