Pilha de Diretórios (comandos pushd, popd e dirs)
A Pilha de Diretórios é um recurso do GNU Bash voltado para facilitar a navegação e manipulação de diretórios. É um recurso onde o usuário pode criar "atalhos" dentro de uma pequena base de diretórios que podem ser facilmente acessados ou referenciados dentro de uma seção do shell. Devido a grande popularidade do GNU Bash vale a pena conhecer esse recurso.
Parte 3: A pilha de diretórios e seus comandos - dirs
Para facilitar a leitura dos elementos da pilha de diretórios o GNU Bash fornece o comando interno dirs. Segue a sintaxe conceitual:
Ex.:
user@linux:/usr/share$ dirs
/usr/share /var/log /etc ~
Ex.:
user@linux:/usr/share$ dirs -l
/usr/share /var/log /etc /home/user
Ex.:
user@linux:/usr/share$ dirs -p
/usr/share
/var/log
/etc
~
Ex.:
user@linux:/usr/share$ dirs -v
0 /usr/share
1 /var/log
2 /etc
3 ~
Ex.:
user@linux:/usr/share$ dirs
/usr/share /var/log /etc ~
user@linux:/usr/share$ dirs -c
user@linux:/usr/share$ dirs
/usr/share
Ex.:
user@linux:/usr/share$ dirs
/usr/share /var/log /etc ~
user@linux:/usr/share$ dirs +2
/etc
user@linux:/usr/share$ dirs -2
/var/log
dirs
dirs [+N | -N] [-clpv]
Se o comando dirs for inserido sem argumentos ele simplesmente irá exibir a pilha de diretórios da mesma forma que o comando pushd faz ao ser utilizado.
Ex.:
user@linux:/usr/share$ dirs
/usr/share /var/log /etc ~
-l
Na execução normal do dirs o diretório home é representado pelo ~ (til), o opcional "-l" tem a função de expandir o ~ apresentando todo o caminho para o diretório.Ex.:
user@linux:/usr/share$ dirs -l
/usr/share /var/log /etc /home/user
-p
O opcional "-p" irá exibir o conteúdo da pilha no formato de listagem.Ex.:
user@linux:/usr/share$ dirs -p
/usr/share
/var/log
/etc
~
-v
O opcional "-v" irá exibir o conteúdo da pilha no formato de listagem numerada.Ex.:
user@linux:/usr/share$ dirs -v
0 /usr/share
1 /var/log
2 /etc
3 ~
-c
O opcional "-c" é responsável pela completa limpeza da pilha de diretórios.Ex.:
user@linux:/usr/share$ dirs
/usr/share /var/log /etc ~
user@linux:/usr/share$ dirs -c
user@linux:/usr/share$ dirs
/usr/share
[+N | -N]
Os direcionais no comando dir não servem para mover o diretório corrente, mas servem apenas para consultar qual seria o diretório do elemento em questão.Ex.:
user@linux:/usr/share$ dirs
/usr/share /var/log /etc ~
user@linux:/usr/share$ dirs +2
/etc
user@linux:/usr/share$ dirs -2
/var/log
#definindo pilha - diretorios mais usados
pushd dir1
pushd dir2
...
pushd dir8
cd
Daí quando abro um terminal já tenho a pilha definida com meus principais diretórios e a partir de agora passarei a navegar com "cd ~[numero]". Show de bola!