Los comandos Pushd y Popd
Para hacer más llevadero el tener que recorrer los directorios en la consola tenemos estos dos comandos que pueden sernos de lo más útil.
En principio todo el mundo(o casi todo el mundo) que use linux conoce el comando cd y sabemos que para movernos entre los directorios puede resultar pesado tener que escribir ‘cd ..’ si queremos escalar al directorio padre o poner la ruta absoluta del directorio donde queramos ir.
Para ello podemos usar el comando ‘cd -’ que nos manda al último directorio en el que estuvimos o bien usar pushd y pop.
El uso de éstos dos comandos es muy fácil a la vez muy prático, el funcionamiento consiste en guardar en una pila los directorios que nosotros queramos con el comando pushd y para luego ir hasta ellos utilizaremos popd. La pila por definición es FIFO, el primer directorio que metamos será el primero al que vayamos.
Ejemplo:
/etc$ pushd .
/etc /etc
/etc$ cd /
/$ popd
/etc
/etc$
Al principio me encuentro en ‘/etc/’ y al hacer un pushd se guarda en la pila ‘/etc/’, y lo muestra dos veces porque el primero siempre es el directorio donde estamos, a partir de ahi, los directorios restantes son los que tenemos en la pila y se empiezan a indexar por 1 el siguiente 2, y asi sucesivamente.
En este caso al hacer un popd nos manda a ‘/etc/ porque es el primer elemento de nuestra pila.
Para ver los elementos que tenemos en la pila usamos el comando dirs y si queremos saber cual es nuestro elemento 2 usamos dirs +2:
/home$ dirs
/home /home /lib /var /
/home$ dirs +2
/lib
Como la pila empieza por 0 el elemento 2 es en realidad el tercero.
Aquí hay que tener cuidado porque al hacer un popd sin parámetro, nos manda directamente al directorio que ha sacado de la pila pero si hacemos un popd +2 el directorio se saca de la pila pero permanecemos en el directorio actual. Si queremos ir a un directorio que está en pila sin eliminarlo debemos hacer lo siguiente:
~/Desktop$ dirs
~/Desktop ~ /home /lib /etc /var /var /
~/Desktop$ dirs +3
/lib
~/Desktop$ cd `dirs +3`
/lib$
Vemos primero la pila, verificamos que el directorio 3 es el que quiero y hago un cd de la salida de dirs +3 (Cuidado con las comillas que no son las corrientes, son las de ejecución de comandos).
Al principio puede resultar muy tedioso, pero si se llega a dominar resulta muy útil para moverse entre directorios a los que se accede frecuentemente.
Por último quería sólo aclarar que también tenemos la opción de usar ‘dirs -3′ o ‘popd -2′, la diferencia está en que empezamos a contar por el final de la pila:
/lib$ dirs
/lib ~ /home /lib /etc /var /var /
/lib$ dirs -3
/etc
/lib$ popd -3