Cómo usar pushd y popd en Linux

Mucha gente de Linux nunca ha oído hablar de él.pushdypopd, pero han existido desde siempre. También puede utilizar la línea de comando para hacer que la navegación por los directorios sea mucho más rápida. Le mostraremos cómo usarlos.

¿Qué son pushd y popd?

Una de las innovacionesalegríaincorporado a su 1978C-shellera el concepto de una pila de directorios y los medios para manipularla:pushdypopd. La imitación es la forma más sincera de adulación, el montón de directorio,pushd, ypopdpronto se integró con otros shells (como Bash) e incluso con otros sistemas operativos.

El concepto de pila es simple. Los elementos se colocan en la pila uno tras otro, con el elemento agregado en último lugar siempre en la parte superior. A medida que se eliminan los elementos de la pila, se eliminan en secuencia de arriba a abajo. Las pilas de este tipo a menudo se denominanEntra último, sale primero(LIFO) colas.

Estrictamente hablando,pushdypopdson un poco más flexibles que estos, pero este es un buen modelo para recordar por ahora.

Dado que nos referimos a una pila de directorios, probablemente no sorprenda que la "d" enpushdypopdsignifica "directorio". Puede utilizar estos comandos para mover directorios hacia o desde la pila de directorios.

¿Pero de qué nos sirve eso?

Cómo pushd llena la pila

Si utilizapushd, suceden las tres cosas siguientes:

  • Cambias el directorio tal y como si lo hubieras usadocd.
  • El nombre y la ruta del directorio se agregan a la pila.
  • La pila aparece como una lista de directorios separados por espacios.

En los siguientes ejemplos, observe cómo la pila de directorios crece con cada uno nuevo.pushdDominio. Observe también que la parte superior de la pila está a la izquierda; aquí es donde aparecen las nuevas entradas.


Después del primeropushdComando hay dos entradas en la pila: el directorio que dejó y el directorio al que se mudó.

Para nuestro ejemplo, ingresemos:

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

El últimopushdEl comando nos devolvió a nuestro directorio de inicio, por lo que la primera y la última entrada de la pila son la tilde (~), que es nuestro directorio de inicio. Esto muestra que aunque un directorio ya esté en la pila, se volverá a agregar para otros.pushdComandos.

Observe también que la entrada en el extremo izquierdo de la pila, la entrada agregada más recientemente, es su directorio actual.

El comando dirs.

Puedes utilizar el…dirsComando como se muestra a continuación para mostrar la pila de directorios:

dirs

No afecta la pila, simplemente se muestra. Algunas de las opciones que puedes usar conpushdconsulte la posición de los directorios en la pila.


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

lección -v

Si en lugar de la tilde (~), Añade el-l(formato largo), de la siguiente manera:

dirs -v -l

Agregar un directorio a la pila

Como hemos visto, se utiliza elpushdComando, hace tres cosas: cambiar su directorio, agregar el nuevo directorio a la pila y mostrar la pila por usted. Puedes utilizar el…-n(sin rotación) Opción para agregar un directorio a la pila sin cambiar el directorio actual.

Aquí está nuestra pila de directorios:

dirs -v -l

Ahora usemos esopushdComando con la opción -n y pas en el/home/daveDirectorio como parámetro. Luego volvemos a comprobar la pila de directorios.

Introducimos lo siguiente:

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

el/home/daveEl directorio se agregó a la pila en la ranura 1, que es el segundo lugar de la pila. No puede estar en la posición superior porque la ranura cero es siempre el directorio actual.

No hemos salido del directorio actual,~/Videospara que no fuera rotado a otra posición en la pila.

Cambiar directorio rotando la pila

Puede utilizar parámetros numéricos con. usarpushdpara ir a cualquier directorio en una pila, y la pila gira en el proceso. El directorio que se va a mover se convierte en la primera entrada del lote.


Se refieren a los directorios de la pila por su número de posición. Puedes contar desde la parte superior o inferior de la pila. Con números positivos como +3 se cuenta desde arriba; para números negativos como -2, cuente desde abajo.

El directorio /home/dave/Documentos está en la posición tres. Podemos usar el siguiente comando para mover este directorio:

pushd +3

Los directorios en la pila encima del directorio que seleccionamos se moverán al final de la pila. Nuestro directorio seleccionado ahora ocupa la primera posición y somos trasladados a este directorio.

Si queremos ir al directorio en la parte inferior de la pila podemos usar 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 hemos mudado a la~/PicturesDirectorio.

El comando popd.

Puedes utilizar el…popdComando para eliminar directorios de la pila.


Si miramos la pila de directorios, podemos ver que el directorio está en la posición 1./home/dave. Para eliminar esto de la pila, agreguemos lo siguiente al número. a entregarpopd:

dirs -v -l
popd +1

el/home/daveSe eliminó el directorio y los que estaban debajo en la pila se movieron hacia arriba un lugar a la vez.

Como podemos conpushd, podemos contar desde el final de la pilapopd. Para eliminar el último directorio de la pila, ingresamos:

popd -0

el~/MusicEl directorio se elimina de la última posición de la pila.

Para cambiar el directorio, haga algo y luego regrese al directorio anteriorpushdypopdjuntos.


Usamospushdpara cambiar a otro directorio. Usamospopdpara descartar el directorio superior de la pila y cambiar al directorio en la segunda posición. Este es el directorio desde el que acaba de trasladarse, por lo que volverá al directorio en el que se encontraba originalmente.

Introducimos lo siguiente:

pushd ~
popd

Empezamos en el~/ProjectsDirectorio,pushden el directorio de inicio y luegopopdde regreso~/ProjectsDirectorio.

Girar por toda la pila

Demostraremos cómo rotar a través de una pila con algunos directorios anidados, pero puedes usar cualquier directorio en cualquier parte del sistema de archivos.

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

/home/dave/Projects/htg/articles

Desde el directorio de inicio, recorremos cada directorio hasta llegar al directorio de artículos. Luego miramos la pila de directorios.

Introducimos lo siguiente:

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

Cuando gastas repetidamentepushd +1Puede utilizar comandos para recorrer la pila de directorios. Si haces esto con frecuencia,pushd +1Sería un buen candidato para un alias.

Introduzca la siguiente:

pushd +1

Cómo crear alias y funciones de shell en Linux

Sello sobre la pila

Es fácil volver a viejos hábitos y utilizarcdCambio de directorio. Cuando haga esto, sobrescribirá el primer directorio de la pila. Esto es inevitable porque el primer espacio está reservado para el directorio de trabajo actual; ninguno de los demás cambiará de posición.

Para hacer esto, ingrese lo siguiente:

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

Después de que te acostumbres,pushdypopdLos comandos (y tal vez usarlos para crear algunos alias) son una forma súper rápida de cambiar entre directorios.

Es por eso que nos quedamos en la línea de comando. La eficiencia es genial, ¿verdad?

37 comandos esenciales de Linux que debes conocer

Comandos de Linux
Archivos alquitrán·pv·gato·tac·chmod·grep·diferencia·sed·Con·hombre·empujado·popd·fsck·disco de prueba·secuencia·fd·pandoc·CD·$ RUTA·awk·unirse·jq·arrugas·único·diarioctl·cola·estadística·es·fstab·eco·menos·chgrp·chown·Rdo·mirar·Instrumentos de cuerda·Tipo·rebautizar·Código Postal·abrir la cremallera·armar·montar·Instalar·disco duro·mkfs·habitación·es rm·sincronización·df·gpg·clima·nano·mkdir·de·en·Parche·Convertir·rclón·Residuos·srm
Procesos alias·pantalla·arriba·amable·riñones·progreso·rastro·sistema·tmux·chsh·historia·en·Lote·gratis·cual·dmesg·chfn·Modificación de usuario·PD·chroot·xargos·tty·dedo meñique·lsof·vmstat·Se acabó el tiempo·Muro·Sí, señor·matar·dormir·sudo·es·Tiempo·agregar grupo·Modificación de usuario·grupos·etc.·apagar·empezar de nuevo·Detener·apagar·contraseña·lscpu·crontab·fecha·bg·fg
Redes netstat·Anillo·Ruta de seguimiento·IP·ss·quién es·falla2ban·bmon·ella·dedo·nmapa·ftp·rizo·obtener·OMS·quién soy·w·iptables·ssh-keygen·ufff

Las mejores computadoras portátiles con Linux para desarrolladores y entusiastas

Artículos Relacionados