pushd
y popd
son comandos que le permiten trabajar con la pila de directorios y cambiar el directorio de trabajo actual en Linux y otros sistemas operativos similares a Unix. Aunque pushd
y popd
son comandos muy poderosos y útiles, están subestimados y rara vez se usan.
En este tutorial, le mostraremos cómo usar el pushd
y popd
comandos para navegar por el árbol de directorios de su sistema.
Pila de directorios #
La pila de directorios es una lista de directorios a los que ha navegado anteriormente. El contenido de la pila de directorios se puede ver usando dirs
dominio. Los directorios se agregan a la pila cuando se cambia a un directorio usando pushd
comando y eliminado con el popd
comando.
El directorio de trabajo actual siempre está en la parte superior de la pila de directorios. El directorio de trabajo actual es el directorio (carpeta) en el que el usuario está trabajando actualmente. Cada vez que interactúa con la línea de comando, está trabajando dentro de un directorio.
El pwd
El comando le permite averiguar en qué directorio se encuentra actualmente.
Al navegar por el sistema de archivos, use la Tab
clave para autocompletar los nombres de los directorios. Agregar una barra al final del nombre del directorio es opcional.
pushd
, popd
y dirs
son funciones internas de shell, y su comportamiento puede diferir ligeramente de un shell a otro. Cubriremos la versión integrada de Bash de los comandos.
pushd
Comando #
La sintaxis para pushd
El comando es el siguiente:
pushd [OPTIONS] [DIRECTORY]
Por ejemplo, para guardar el directorio actual en la parte superior de la pila de directorios y cambiar a /var/www
escribirías:
~$ pushd /var/www
Si tiene éxito, el comando anterior imprimirá la pila de directorios. ~
es el directorio en el que ejecutamos pushd
dominio. El símbolo de tilde ~
significa directorio de inicio.
/var/www ~
pushd
primero guarda el directorio de trabajo actual en la parte superior de la pila y luego navega al directorio dado. Como el directorio actual siempre debe estar en la parte superior de la pila, una vez que se cambia, el nuevo directorio actual va a la parte superior de la pila pero no se guarda en la pila. Para guardarlo debes invocar pushd
de eso. Si usas cd
para cambiar a otro directorio, el elemento superior de la pila se perderá,
Agreguemos otro directorio a la pila:
/var/www$ pushd /opt
/opt /var/www ~
Para suprimir el cambio de directorio, use -n
opción. Por ejemplo, para agregar /usr/local
directorio a la pila pero sin cambiarlo, escribiría:
/opt$ pushd -n /usr/local
Como el directorio actual (que siempre está en la parte superior) no cambia, el /usr/local
el directorio se agrega en segundo lugar desde la parte superior de la pila:
/opt /usr/local /var/www ~
El pushd
acepta dos opciones, +N
y -N
que le permite navegar a Nth
directorio de la pila. El +N
la opción cambia a Nth
elemento de la lista de pila contando de izquierda a derecha a partir de cero. Cuando -N
se utiliza la dirección de la cuenta es de derecha a izquierda.
Para ilustrar mejor las opciones, imprimamos la pila de directorios actual:
/opt$ dirs -l -v
La salida mostrará una lista indexada de la pila de directorios:
0 /opt
1 /usr/local
2 /var/www
3 /home/linuxize
Si desea cambiar a /var/www
y llévelo a la parte superior de la pila, usará uno de los siguientes.
Al contar de arriba a abajo (o de izquierda a derecha), el índice del directorio es 2
.
pushd +2
Al contar de abajo hacia arriba el índice del /var/www
el directorio es 1
.
pushd -1.
Cuando se usa sin ningún argumento, pushd
alternará los dos directorios superiores y hará que el nuevo superior sea el directorio actual. Esto es lo mismo que cuando se usa el cd -
comando.
popd
Comando #
El popd
el comando toma la forma:
popd [OPTIONS]
Cuando se usa sin argumento, popd
elimina el directorio superior de la pila y navega al nuevo directorio superior.
Digamos que tenemos la siguiente pila de directorios:
/opt /usr/local /var/www /etc/nginx ~
Si ejecuta el popd
comando eliminará el /opt
de la pila y cambie a /usr/local
directorio:
/opt$ popd
La salida mostrará la nueva pila de directorios:
/usr/local /var/www /etc/nginx ~
El -n
La opción suprime el cambio de directorio predeterminado y elimina el segundo elemento de la pila:
/opt$ popd -n
/usr/local /etc/nginx ~
Igual que pushd
, popd
también acepta el +N
y -N
opciones que se pueden usar para eliminar el Nth
directorio de la pila.
/opt$ popd +1
/usr/local ~
Conclusión #
Normalmente, usaría el cd
comando para pasar de un directorio a otro. Sin embargo, si pasa mucho tiempo en la línea de comando, pushd
y popd
Los comandos aumentarán su productividad y eficiencia.
Si tiene alguna pregunta o comentario, no dude en dejar un comentario.