Mucha gente de Linux nunca ha oído hablar de él.pushd
ypopd
, 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:pushd
ypopd
. La imitación es la forma más sincera de adulación, el montón de directorio,pushd
, ypopd
pronto 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,pushd
ypopd
son 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" enpushd
ypopd
significa "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 usado
cd
. - 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.pushd
Dominio. Observe también que la parte superior de la pila está a la izquierda; aquí es donde aparecen las nuevas entradas.
Después del primeropushd
Comando 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 últimopushd
El 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.pushd
Comandos.
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…dirs
Comando 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 conpushd
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
opció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 elpushd
Comando, 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 esopushd
Comando con la opción -n y pas en el/home/dave
Directorio como parámetro. Luego volvemos a comprobar la pila de directorios.
Introducimos lo siguiente:
pushd -n /home/dave
dirs -v -l
el/home/dave
El 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,~/Videos
para que no fuera rotado a otra posición en la pila.
Cambiar directorio rotando la pila
Puede utilizar parámetros numéricos con. usarpushd
para 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~/Pictures
Directorio.
El comando popd.
Puedes utilizar el…popd
Comando 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/dave
Se 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~/Music
El directorio se elimina de la última posición de la pila.
Para cambiar el directorio, haga algo y luego regrese al directorio anteriorpushd
ypopd
juntos.
Usamospushd
para cambiar a otro directorio. Usamospopd
para 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~/Projects
Directorio,pushd
en el directorio de inicio y luegopopd
de regreso~/Projects
Directorio.
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 +1
Puede utilizar comandos para recorrer la pila de directorios. Si haces esto con frecuencia,pushd +1
Serí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 utilizarcd
Cambio 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,pushd
ypopd
Los 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