domingo, 12 de junio de 2011

#tuxcomando pushd y popd


Estos comandos nos sirven para apilar/desapilar directorios, es decir, interactua con los directorios que escojamos como si se tratase de una pila.

A grandes rasgos, podemos definir una pila como "el primer elemento que entra es el ultimo que sale", ya veremos porque.

Si utilizamos pushd apila, mientras que popd desapila. Veremos esto mas claro con un ejemplo.

-

Empezamos en el directorio home:

[alpha@alpha-pc ~]$ pwd

/home/alpha



apilamos el directorio actual (utilizamos pushd .):

[alpha@alpha-pc ~]$ pushd .

~ ~

con esto hemos apilado home/alpha.

A continuación tenemos que ir a /etc/X11:

[alpha@alpha-pc ~]$ cd /etc/X11/

[alpha@alpha-pc X11]$ pwd

/etc/X11



Una vez hayamos hecho lo que queríamos en el directorio para volver al directorio en el que estábamos antes(utilizaremos popd):

[alpha@alpha-pc X11]$ popd

~

[alpha@alpha-pc ~]$ pwd

/home/alpha



Con esto hemos desapilado el directorio que había en la pila, y puesto que solo teníamos uno si volvemos a utilizar popd veríamos:

[alpha@alpha-pc ~]$ popd

bash: popd: la pila de directorios está vacía



Puede que en este caso no sea lo mas rápido utilizar una pila de directorios para volver a home (ya que con un simple cd se podría) pero la idea era ilustrar el funcionamiento del comando.

-

Hay que tener en cuenta que no solo podemos apilar un directorio, sino todos los que queramos (no se el tope, si alguien se aburre que lo busque xD), veamos un ejemplo de como funciona con varios directorios:

[alpha@alpha-pc ~]$ pushd .

~ ~

[alpha@alpha-pc ~]$ pwd

/home/alpha

[alpha@alpha-pc ~]$ cd /etc/

[alpha@alpha-pc etc]$ pwd

/etc

[alpha@alpha-pc etc]$ pushd .

/etc /etc ~

[alpha@alpha-pc etc]$ cd /var/

[alpha@alpha-pc var]$ pwd

/var

[alpha@alpha-pc var]$ pushd .

/var /var /etc ~

[alpha@alpha-pc var]$ cd /

[alpha@alpha-pc /]$ pwd

/

[alpha@alpha-pc /]$ pushd .

/ / /var /etc ~

[alpha@alpha-pc /]$ popd

/ /var /etc ~

[alpha@alpha-pc /]$ pwd

/

[alpha@alpha-pc /]$ popd

/var /etc ~

[alpha@alpha-pc var]$ pwd

/var

[alpha@alpha-pc var]$ popd

/etc ~

[alpha@alpha-pc etc]$ pwd

/etc

[alpha@alpha-pc etc]$ popd

~

[alpha@alpha-pc ~]$ pwd

/home/alpha

[alpha@alpha-pc ~]$ popd

bash: popd: la pila de directorios está vacía

-

-

Un saludo y hasta el próximo #tuxcomando.


------------------------------


Aetsu

No hay comentarios:

Publicar un comentario