Cómo usar pushd y popd en Linux

Contenidos

Una ventana de terminal en un escritorio Linux al estilo de Ubuntu.

Mucha gente de Linux nunca ha oído hablar de pushd y popd, pero han existido desde siempre. Además pueden acelerar drásticamente el procedimiento de navegación de directorios en la línea de comandos. Le mostraremos cómo usarlos.

¿Qué son pushd y popd?

Una de las innovaciones Bill Joy incorporado en su 1978 C Shell fue el concepto de una pila de directorios y los medios para manipularlo: pushd y popd. La imitación es la forma más sincera de adulación, la pila de directorios, pushd, y popd pronto se incorporaron a otros shells (como Bash) e inclusive a otros sistemas operativos.

El concepto de pila es simple. Los ítems se colocan en la pila uno al mismo tiempo, y el elemento agregado más recientemente siempre ocupa la posición superior. Cuando los ítems se recuperan de la pila, se eliminan, en orden, de arriba hacia abajo. Las pilas de esta naturaleza a menudo se denominan Último en entrar primero en salir (LIFO) colas.

Verdaderamente, pushd y popd son un poco más flexibles que esto, pero este es un buen modelo a prestar atención por ahora.

Como nos referimos a una pila de directorios, probablemente no sorprenda que la «d» en pushd y popd significa «directorio». Estos comandos le posibilitan insertar directorios o sacarlos de la pila de directorios.

Pero, ¿en qué nos beneficia eso?

Cómo pushd llena la pila

Cuando usas pushd, suceden las siguientes tres cosas:

  • Cambias el directorio igual que si hubieras usado cd.
  • El nombre y la ruta del directorio se agregan a la pila.
  • La pila se muestra como una lista de directorios separados por espacios.

En los siguientes ejemplos, observe cómo crece la pila de directorios con cada nuevo pushd mando. Además tenga en cuenta que la parte de arriba de la pila está a la izquierda; aquí es donde aparecen las nuevas entradas.

Después de la primera pushd comando, hay dos entradas en la pila: el directorio que dejó y el que se mudó.

Para nuestro ejemplo, escribimos lo siguiente:

pushd ~/Desktop
pushd ~/Music
pushd ~/Documents
pushd ~/Pictures
pushd ~

El último pushd El comando nos llevó de regreso a nuestro directorio de inicio, por lo que la primera y la última entrada en la pila son la tilde (~), que representa nuestro directorio de inicio. Esto muestra que, aún cuando un directorio ya está en la pila, se agregará nuevamente para otros pushd comandos.

Tenga en cuenta además que la entrada más a la izquierda en la pila, que es la entrada agregada más recientemente, es su directorio actual.

El comando dirs

Puedes utilizar el dirs comando, como se muestra a continuación, para mostrar la pila de directorios:

dirs

No afecta la pila, solo la muestra. Algunas de las alternativas que puede usar con pushd consulte la posición de los directorios en la pila.

Si desea ver la posición numérica de cada directorio, puede utilizar el -v (vertical) como se muestra a continuación:

dirs -v

Si prefiere ver la ruta de acceso deletreada a su directorio de inicio en lugar de la tilde (~), añade el -l (formato largo) opción, así:

dirs -v -l

Agregar un directorio a la pila

Como hemos visto, cuando utiliza el pushd comando, hace tres cosas: cambia su directorio, agrega el nuevo directorio a la pila y muestra la pila por usted. Puedes utilizar el -n (sin rotación) para agregar un directorio a la pila sin cambiar el directorio actual.

Aquí está nuestra pila de directorios:

dirs -v -l

Ahora, usaremos el pushd comando con la opción -n y pas en el /home/dave directorio como parámetro. Después, revisaremos la pila de directorios nuevamente.

Escribimos lo siguiente:

pushd -n /home/dave
dirs -v -l

los /home/dave El directorio se agregó a la pila en la ranura 1, que es el segundo lugar de la pila. No puede ocupar la posición superior debido a que la ranura cero es siempre el directorio actual.

No dejamos el directorio actual, ~/Videos, por lo que no se rotó a otra posición en la pila.

Cambio de directorio girando la pila

Puede usar parámetros numéricos con pushd para moverse a cualquier directorio de una pila, y la pila gira cuando lo hace. El directorio que ha escogido mover se convierte en la primera entrada de la pila.

Hace referencia a los directorios de la pila por su número de posición. Puede contar desde la parte de arriba o inferior de la pila. Para números positivos, como +3, cuente desde arriba; para números negativos, como -2, cuente desde abajo.

El directorio / home / dave / Documents está en la posición tres. Podemos utilizar el siguiente comando para mover ese directorio:

pushd +3

Los directorios de la pila sobre el directorio que hemos escogido se mueven al final de la pila. Nuestro directorio escogido ahora ocupa la primera posición y nos trasladamos a ese directorio.

Si queremos cambiar al directorio en la parte inferior de la pila, podemos utilizar el siguiente comando:

pushd -0

El último directorio se mueve a la primera ranura y todos los demás se mueven hacia abajo en la pila. Nos cambiamos a la ~/Pictures directorio.

El comando popd

Puedes utilizar el popd comando para borrar directorios de la pila.

Si miramos la pila de directorios, podemos ver que el directorio en la posición 1 es /home/dave. Para borrar esto de la pila, escribimos lo siguiente para pasar el número a popd:

dirs -v -l
popd +1

los /home/dave se eliminó el directorio, y los que estaban debajo de él en la pila se han movido hacia arriba un lugar.

Del mismo modo que podemos con pushd, podemos contar desde la parte inferior de la pila con popd. Para borrar el último directorio de la pila, escribimos:

popd -0

los ~/Music El directorio se elimina de la última posición en la pila.

Para cambiar el directorio, haga algo y posteriormente vuelva al directorio anterior, puede utilizar pushd y popd juntos.

Usaremos pushd para moverse a un directorio distinto. Usaremos popd para descartar el directorio superior de la pila y pasar al directorio en la segunda posición. Este es el directorio del que acaba de salir, por lo que se le devuelve al directorio en el que estaba originalmente.

Escribimos lo siguiente:

pushd ~
popd

Empezamos en el ~/Projects directorio, pushd al directorio de inicio, y posteriormente popd de vuelta a ~/Projects directorio.

Girar a través de toda la pila

Vamos a ilustrar cómo rotar a través de una pila con algunos directorios anidados, pero puede utilizar cualquier directorio en cualquier parte del sistema de archivos.

Nuestro nivel más profundo de anidación es:

/home/dave/Projects/htg/articles

Desde el directorio de inicio, descenderemos progresivamente a través de cada directorio hasta llegar al directorio de posts. Después, veremos la pila de directorios.

Escribimos lo siguiente:

pushd ~/Projects
pushd htg
pushd articles
dirs -v -l

Cuando emite repetidamente pushd +1 comandos, puede recorrer una y otra vez la pila de directorios. Si haces esto a menudo, pushd +1 sería un buen candidato para un alias.

Escriba lo siguiente:

pushd +1

RELACIONADO: Cómo crear alias y funciones de shell en Linux

Estampado sobre la pila

Es fácil volver a los viejos hábitos y utilizar cd para cambiar de directorio. Si lo hace, sellará el primer directorio de la pila. Esto es inevitable, puesto que el primer espacio está reservado para el directorio de trabajo actual; ninguno de los otros cambia de posición.

Para hacer esto, escriba lo siguiente:

dirs -v -l
cd ~/Music
dirs -v -l


Después de que te acostumbres a la pushd y popd comandos (y, tal vez, utilícelos para crear algunos alias), tendrá una forma súper rápida de saltar entre directorios.

Es es por ello que que nos quedamos en la línea de comandos. Rocas de eficiencia, ¿verdad?

RELACIONADO: 37 comandos importantes de Linux que debe conocer

Suscribite a nuestro Newsletter

No te enviaremos correo SPAM. Lo odiamos tanto como tú.