Comando Linux cd ..


9

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?


2
por que não apenas executar cd ../../../..e acabar com isso?
Red Cricket

8
Você pode desfrutar pushde popdou mesmo cd -.
jscott

1
Se você estiver indo tão longe, talvez faça sentido apenas cd / real / path / you / want dependendo da profundidade das pastas.
Drew Khoury

Isso é muito mais esforço do que vale a pena. Se você estiver movendo entre diretórios, a especificação do caminho completo ou apenas o uso 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 como h foo3, seguido !450de repetir esse comando.
ewwhite

Abra outra janela do terminal e não digite cd ../../../ .. em tudo
Matt

Respostas:


18

A maneira clássica de fazer isso é definir a CDPATHvariável. No seu caso, pode ser definido como .:../../../../ou .:/path/to/the/parent/of/foopara alcançar o efeito desejado. Você pode simplesmente fazer cd foo/sub1/bar/deste chegar onde quiser.

A vantagem disso é que a conclusão da guia cdtambém analisa $CDPATHe funcionará magicamente.


9

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


7

Você pode criar atalhos para esses comandos adicionando aliases no arquivo de configuração do bash (~ / .bashrc ou /etc/bash.bashrc)

alias cdd="cd ../../../../"

Então, quando você digita, cddele executa esse comando.


3
Sim, ou function cdd () { cd ../../../../$1/bar/dest ; }, então você pode digitar cdd foo, por exemplo cdd foo2,.
Andrew Schulman

0

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:

z foo3.*dest

ao invés de:

cd ../../../../foo3/sub1/bar/dest/

(desde que você tenha visitado esse diretório antes e nada mais recente / usado com frequência corresponda a essa expressão regular)

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.