Utilizar comandos pushd y popd

 

Trabajo en TerminalEn reiteradas ocasiones nos encontramos trabajando en un terminal utilizando rutas de directorios largas de forma recurrente. En la mayoría de los casos el comando cd y la tecla tabular son nuestros mejores aliados. Sin embargo existe otra alternativa que tal vez nos pueda servir de utilidad y permite que nos movamos entre directorios (carpetas) con más flexibilidad mediante los comandos pushd y popd.

 

Como trabajan pushd y popd

Básicamente trabajan con la pila de directorios. En sí, pushd guarda la información en memoria para ser utilizada en cualquier momento —funcionaría algo así como un portapapeles pero en la shell—.

Ejemplos de su utilización

Añadir rutas a la pila de directorios

Vamos a suponer que deseo añadir a la pila de directorios las siguientes rutas:

/usr/share/
/etc/apt/sources.list.d/
/usr/lib/systemd/
/var/cache/apt/

Al ejecutar el comando pushd este cambiará al directorio (carpeta) especificado y lo almacenará en memoria. El mecanismo sería el siguiente:

pushd /usr/share/
pushd /etc/apt/sources.list.d/
pushd /usr/lib/systemd/
pushd /var/cache/apt/

En la terminal obtendríamos el siguiente resultado:

terminal-pushd-img

Observar que a medida que vamos ingresando las rutas a la pila de directorios, este nos muestra el orden en que van quedando. Sin embargo, no siempre estaremos usando pushd, por lo que tendremos que hacer uso de otro comando para recordar las rutas añadidas.

Como movernos entre los directorios agregados a la pila

Cada vez que usamos el comando pushd para añadir una ruta este le asigna un número de orden comenzando por el 0 (cero). Para ver todas las rutas almacenadas utilizamos el comando dirs de esta manera:

dirs -v

el resultado:

 0  /var/cache/apt
 1  /usr/lib/systemd
 2  /etc/apt/sources.list.d
 3  /usr/share
 4  ~

Tal cual se presenta el listado anterior el orden 0 (cero) es la ubicación actual en nuestra shell.

terminal-pushd-02-img

Para cambiar a otro directorio usamos la sintaxis: pushd | pushd +N, dónde N es el número de la lista. P. ej. para movernos a /etc/apt/sources.list.d/ de acuerdo al listado anterior será:

pushd +2

Ahora el orden 0 (cero) pasa a /etc/apt/sources.list.d/ —la ubicación actual— y /var/cache/apt/ toma el orden 3. Es decir, que a medida que ejecutamos pushd +N se va reasignando el orden en la lista, por lo que no siempre una ruta mantiene siempre el mismo valor numérico —funciona como una ruleta—:

terminal-pushd-03-img

Si ejecutamos pushd sin opciones este regresará al directorio anterior y viceversa. Para bajar un nivel en la lista de directorios ejecutamos pushd -1.

Eliminar una ruta de la pila de directorios

En este caso utilizaremos popd | popd +N, dónde N es el número de la lista.

Por ejemplo si estamos en la ubicación /etc/apt/sources.list.d/ —como en el ejemplo— y ejecutamos popd sin opciones, este eliminará la ruta actual. Si deseamos eliminar otra ruta de la lista desde el directorio actual basta ejecutar:

popd +2  ## Eliminará la ruta /var/cache/apt

terminal-pushd-04-img

Para verificar que ruta tiene asignado algún número de la lista ejecutamos:

dirs +N ## Dónde N es un número de la lista.

Ejemplo:

dirs +2

De acuerdo con la figura anterior nos daría como resultado:

/usr/lib/systemd

Para eliminar completamente la lista almacenada en la pila:

dirs -c

Otras opciones:

Mostrar el orden sin enumerar —menos intuitivo cuando son muchas direcciones—

dirs -l 

o

dirs -p
Se debe tener en cuenta que si utilizamos el comando cd este elimina la ruta actual, y si ejecutamos dirs -v añadirá la ruta actual a la pila sin intervención del comando pushd. Por lo que es aconsejable no usar el comando cd si vamos a utilizar el método descripto.

¿Te resultó interesante? Compártelo ...



Percaff_TI99

Publicado por Percaff_TI99

http://gutl.jovenclub.cu/ » Forma parte de GUTL desde el 10 agosto, 2013. Amante de la ciencia y tecnología en general. Usuario de GNU/Linux desde hace varios años.

Este artículo tiene 4 comentarios

  1. Tengo que confesarte que cuando veo un articulo pendiente de tu autoria ni lo reviso, directamente lo publico. Otra maravilla de articulo. Gracias, por cierto, creo que vale la pena subirle un nivel al rol de tu usuario para que asi tus articulos se publiquen sin esperar por nosotros, no se que dirá el resto del staff. Me voy a tomar el atrevimiento de hace el upgrade de tu rol, Pablo se que debe estar complicadisimo con lo del evento de Abril. Saludos y gracias por el post y sorry por el oftopic, pero era necesario…

  2. Gracias Maikel por tu comentario. Igualmente yo que vos le daría una mirada rápida, algo se me puede pasar y cuatro ojos ven mejor que dos 😀

    En cuanto a los permisos te doy las gracias por tu confianza, sin embargo si no están de acuerdo los revocan. Ya sabes que de mi parte no va a ver ningún tipo de quejas, lo que ustedes decidan para mi está bien.

    Saludos.

  3. pushd y popd son muy latosos de usar, prueben autojump, va creando una bd con las rutas que usamos y luego cuando «aprende» es un placer usarlo.

    apt-cache show autojump

Los comentarios están cerrados.