Apesar de já existirem algumas boas respostas, pensei em mencionar que os antigos pushd
e popd
Bash incorporados permitem que você se mova muito rapidamente entre diretórios em caminhos profundos em seu sistema de arquivos. Em contraste com os marcadores autojump
mencionados por burger.ga , a pilha de diretórios criada usando pushd
é apenas temporário.
Como as notas do manual do GNU , pushd
e popd
são construções internas do Bash usadas para construir uma pilha temporária de diretórios que é um
list of recently-visited directories. The pushd builtin adds directories to the stack as it changes the current directory, and the popd builtin removes specified directories from the stack and changes the current directory to the directory removed. The dirs builtin displays the contents of the directory stack.
Demora um pouco para se acostumar, mas há muitos tutoriais úteis por aí no este blog e este este site por exemplo. Não há manpages separadas para os comandos, pois elas estão incluídas na página de manual do Bash, mas para referência rápida você pode ver o GNU Bash página.
A explicação mais clara é este artigo muito útil e é exatamente a maneira que eu uso pushd
e popd
:
Primeiramente, use dirs
ou dirs -l
para listar diretórios na pilha e dirs -c
para limpar a pilha.
De certa forma, você marca o local onde deseja retornar inserindo
pushd /home/mike/Pictures/Canon/2012_07_01
e, em seguida, você pode adicionar mais diretórios à pilha, de modo a obter uma listagem de diretórios conforme abaixo, que inclui três pastas designadas e sua pasta inicial ~
:
dirs
~/Downloads/folder/interest ~/Music/artist/album ~ ~/Pictures/Canon/2012_07_01
Na verdade, você não precisa usar popd
imediatamente, pois isso remove diretórios da pilha; A melhor coisa a fazer é usar pushd
para girar a pilha, para que você possa alternar entre os diretórios e encomendá-los como quiser. Para mais informações sobre essa rotação útil de pilha, consulte a página de manual do Bash .
Se você tiver exatamente a disposição da pilha mostrada na listagem dirs
acima, pushd +3
mudará para a pasta Imagens específica e colocará a parte superior da pilha (é +3 e não +4, pois você não conte seu ~
na pilha de diretórios):
pushd +3
~/Pictures/Canon/2012_07_01 ~/Downloads/folder/interest ~/Music/artist/album ~
Então, o prompt diz:
~/Pictures/Canon/2012_07_01$
Você pode continuar fazendo isso sem removê-los da pilha, embora quaisquer pastas para as quais você cd
, além daquelas adicionadas à pilha de diretórios com pushd
, alterem sua pilha de diretórios.
Quando a pilha de diretórios estiver organizada na ordem desejada, você poderá usar popd
para percorrer rapidamente os diretórios e retornar à pasta inicial; por exemplo, de Pictures
, podemos retornar a Downloads
:
popd
~/Downloads/folder/interest ~/Music/artist/album ~
e o prompt lê
~/Downloads/folder/interest$
Em geral, a beleza disso é que você pode configurar a pilha de diretórios e a ordem dos itens dentro dela com pushd
e, em seguida, digamos que você tenha três arquivos para editar em cada um desses diretórios, você pode retornar instantaneamente para cada um com popd
ao removê-los da pilha de diretórios. Então, com seu último popd
, você retornará para ~
. Ele se torna particularmente útil quando você tem diretórios particularmente profundos e pode usá-lo para configurar a pilha de diretórios para se mover rapidamente entre eles.
Além disso, esta questão contém algumas dicas que você pode achar útil ao trabalhar na linha de comando: