Digamos que eu precise fazer muito isso:
cd ../../../../foo/sub1/bar/dest/
cd ../../../../foo2/sub1/bar/dest/
cd ../../../../foo3/sub1/bar/dest/
cd ../../../../foo/sub1/bar/dest/
Existe alguma maneira mais rápida de nem sempre digitar ../../../../
tantas vezes? Alguma idéia criativa?
cd ../../../..
e acabar com isso?pushd
epopd
ou mesmocd -
.cd -
( para ir para o último diretório ) são mais fáceis. Normalmente,alias h="history|grep"
para que eu possa usar os atalhos de entrada do histórico. Algo comoh foo3
, seguido!450
de repetir esse comando.Respostas:
A maneira clássica de fazer isso é definir a
CDPATH
variável. No seu caso, pode ser definido como.:../../../../
ou.:/path/to/the/parent/of/foo
para alcançar o efeito desejado. Você pode simplesmente fazercd foo/sub1/bar/dest
e chegar onde quiser.A vantagem disso é que a conclusão da guia
cd
também analisa$CDPATH
e funcionará magicamente.fonte
Você pode usar o autojump, que aprende automaticamente com o comando cd anterior e só precisa especificar uma sequência exclusiva do caminho completo na próxima vez. ex.
j foo
,j foo1
,j foo2
fonte
Você pode criar atalhos para esses comandos adicionando aliases no arquivo de configuração do bash (~ / .bashrc ou /etc/bash.bashrc)
Então, quando você digita,
cdd
ele executa esse comando.fonte
function cdd () { cd ../../../../$1/bar/dest ; }
, então você pode digitarcdd foo
, por exemplocdd foo2
,.Encontrei recentemente https://github.com/rupa/z , que permite saltar para um diretório usado recentemente por regex. Então você pode fazer algo como:
ao invés de:
(desde que você tenha visitado esse diretório antes e nada mais recente / usado com frequência corresponda a essa expressão regular)
fonte