InicioLinuxStack de directorios en bash

Stack de directorios en bash

Linux3/31/2015
En bash, solemos utilizar atajos del comando “cd”, como por ejemplo cd - que devuelve la shell al directorio anterior o cd que nos lleva a la home de usuario. No obstante, bash ofrece una serie de comandos (dirs, popd y pushd) para controlar un stack/pila de directorios más avanzada sobre la que podemos añadir, quitar o consultar directorios que luego podemos utilizar para volver a acceder a ellos.

La ventaja de estos comandos sobre “cd -” es que este último solamente guarda el anterior directorio mientras que con pushd podemos almacenar tantos directorios como queramos.

La teoría sobre estos tres comandos es la siguiente:

pushd: guarda el directorio actual al principio del stack de directorios. Si le pasamos como parámetro un directorio guardará el directorio actual y el especificado (este último primero).
popd: elimina el primer directorio del stack de directorios y hace un “cd” contra ese directorio.
dirs: muestra el listado de directorios almacenados en el stack.

Ejemplo práctico básico

Guardar 3 directorios en el stack + en el que nos encontramos al principio (home del usuario ~)

[~] $ pushd /usr/local/etc/
/usr/local/etc ~
[/usr/local/etc] $ pushd /var/tmp/
/var/tmp /usr/local/etc ~
[/var/tmp] $ pushd /home/
/home /var/tmp /usr/local/etc ~


Listar el stack de directorios:

[/home] $ dirs -v
0 /home
1 /var/tmp
2 /usr/local/etc
3 ~


Acceder a los directorios con popd en orden inverso a como los hemos añadido:

[/home] $ popd
/var/tmp /usr/local/etc ~
[/var/tmp] $ popd
/usr/local/etc ~
[/usr/local/etc] $ popd
~
[~] $ popd
bash: popd: directory stack empty


Si no queremos acceder en orden inverso sino a un directorio concreto lo podemos hacer a partir de su ID:

[/var/tmp] $ dirs -v
0 /var/tmp
1 /usr/local/etc
2 ~
[/var/tmp] $ cd $(dirs +1)
[/usr/local/etc] $ pwd
/usr/local/etc


Así que ya saben, cuando estén dentro de una ruta infernal y tengáis que cambiar de directorio para volver a acceder al rato, la guardáis con pushd y luego ejecutan popd para volver. Con esto seguro que evitan tener abrir varias shells o terminales en algunas ocasiones.
Datos archivados del Taringa! original
0puntos
44visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
1visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

j
jjm66🇦🇷
Usuario
Puntos0
Posts1,916
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.