Pushd y popd: recordar directorios de trabajo

Sin importar el directorio en el que estemos posicionados al trabajar en la línea de comandos, podemos utilizar cd para regresar a nuestro home o cd - para dirigirnos al último directorio en el que estuvimos. Este truco es útil para evitar tener que tipear una ruta completa para movernos a la misma. ¿Pero qué sucede si hay una lista de directorios en los que trabajamos con frecuencia? ¿Cómo podemos hacer para movernos fácilmente de uno a otro? En este post explicaremos cómo hacerlo utilizando pushd y popd, dos herramientas nativas provistas por Bash

Pushd y popd

Para empezar, ejecutemos los siguientes comandos. Como podemos ver, se trata de pushd seguido de una lista de directorios que hemos elegido para el ejemplo:

# Primero:
pushd /etc
# Luego:
pushd /var/log
# Por último:
pushd /tmp

Como podemos ver en la Fig. 1, luego de cada uno nos movemos automáticamente al directorio indicado. Hasta aquí no habría ninguna diferencia con respecto a cd. Pero si ahora hacemos

dirs -v

veremos que los directorios especificados anteriormente (junto con ~, que representa el directorio home del usuario actual) aparecen ahora en una lista numerada.

Pushd y Popd: agregar directorios al stack con pushd
Figura 1 – Pushd y Popd: agregar directorios al stack con pushd

Esa lista es una especie de stack. Para movernos a uno de los directorios de la misma sin tener que escribir la ruta completa, tenemos que identificar su posición contando a partir del último lugar. Por ejemplo, para cambiar de directorio a /etc (que ocupa la posición 1 contando desde abajo, o la posición 2 contando desde arriba, siempre comenzando desde 0), haremos

pushd -1

o

pushd +2

Tip: Utilizar -N o +N para operar con un directorio dado contando a partir del fondo o del principio de la lista, respectivamente.

Ahora volveremos a examinar el estado del stack.

Examinando el stack

Luego de haber ejecutado el comando anterior, el stack se modificó como vemos en la Fig. 2. Nuestra elección pasó a ocupar el primer lugar en el stack, ya que es nuestro directorio actual. Si queremos quitar directorios del stack (mejor dicho, dejar de recordarlos), utilizaremos popd. Sin argumentos, este comando quita el directorio que ocupa la primera posición del stack. Para quitar un directorio ubicado en otra posición, podemos identificarlo contando a partir del fondo o del principio de la lista como antes:

Uso de pushd y popd: quitar directorios del stack con popd
Figura 2 – Uso de pushd y popd: quitar directorios del stack con popd

Espero que este post les haya resultado útil. ¡Nos leemos en la próxima!

¡Aprovechá la oportunidad de suscribirte al blog para recibir en tu correo el post nuestro de cada día, novedades, y promociones exclusivas!