Algum atalho para "cd .."?


30

Existe algum atalho para cd ..?


47
Demora tanto tempo para digitar?
— rightfold

17
SIM, leva muito tempo para algo necessário com tanta frequência.
— maaartinus

2
Tente empurrar e pop
— Zachary Scott

19
Estou terrivelmente divertido que alguém encontra cd ..demasiado pesado para digitar
— Erik

8
Suspeito que as pessoas que precisam ' cd ..' frequentemente tenham o antipadrão “preciso cdentrar em um diretório antes de falar sobre os arquivos lá”, em vez de especificar os caminhos do sistema de arquivos.
— Bignose

Respostas:


68

Não por padrão (pode haver algumas exceções), não há. Mas se você usar o aliascomando, poderá criar um atalho como este:

alias ..="cd .."

Isso permitirá que você use o comando ..para fazer cd ...


10
Porra, eu estava digitando exatamente a mesma coisa.
— Majenko 19/03/11

6
Estou usando também alias ...="cd ../.."e mais dois. Além disso, eu posso recomendar alias ,=cd "$OLDPWD".
— 21411 maaartinus

13
@maaartinus: cd -.
— Benjamin Bannier

1
@honk eu não sabia disso. No entanto, é muito longo (e eu não preciso da saída).
— maaartinus

1
Alguém poderia explicar o voto negativo?
— Wuffers 19/03/11

82

Ative a autocdopção Ele permitirá que você digita ..para cd ..e vai realmente deixar você usar qualquer diretório como um nome de comando e vontade cda ele:

shopt -s autocd

Para os curiosos, o mesmo existe para o zsh:

setopt auto_cd

1
Isso é fantastico. Hora de editar .bashrc em todas as minhas caixas Linux. Infelizmente, parece não funcionar com o cygwin bash.
— malabarista

3
Uau, isso é incrível.
— Reid

5
@gordoco: sim, é apenas o bash 4.x. É a razão pela qual eu uso o zsh há 14 anos.
— Sam Hocevar

1
zsh(+ auto_cd) FTW!
— Johnsyweb

2
@LaC: A superioridade técnica nem sempre é um determinante do domínio. O Bash é muito mais antigo e tem muito mais a ser escrito, e praticamente todos os programadores de shell o conhecem, mais do que qualquer outra coisa. Mudar pode ser difícil. - de alguém que não sabe o que todo o barulho zsh é tudo, e tem apenas o bash realmente já usou :)
— tshepang

42

Acho isso útil:

up() { local p= i=${1:-1}; while (( i-- )); do p+=../; done; cd "$p$2" && pwd; }

Por exemplo, up 4=cd ../../../..

Como um bônus, `up 4`/path/to/filefunciona de maneira semelhante a ../../../../path/to/file.


Isso é interessante! Em 2007, escrevi uma [função] semelhante ( home.arcor.de/hirnstrom/minis/index.html#up_X ) para o meu arquivo .bashrc. Sua solução também permite retroceder o caminho todo cd -. Bem feito! :)
— usuário desconhecido

Agradável. Eu tinha algo parecido com o VMS DCL quando trabalhei nisso, mas realmente não pensei nisso quando me mudei para o Unix e suas variantes.
— GreenMatt

16

Depois de fazer um

bind '"\eu":"cd ..\C-m"'

você pode cd ..pressionando Alt-u. Eu costumava usar isso em campeonatos chdir ;-)

Se você quiser toda a suíte swift-chdir

ALT+u cd ..
ALT+n enter next dir for selection
ALT+p enter previous dir for selection
ALT+SPC choose selected dir
ALT+l list subdirectories and highlight selection

inclua isso no seu .bashrc

swiftcd-status() {
    echo -n -e "\r\0033[1A\0033[J"
}

swiftcd-contents() {
    find "$swiftcdpath" -maxdepth 1 -executable -type d
}

swiftcd-setdir () 
{ 
    swiftcdpath=$PWD
    swiftcddirnum=1
    swiftcddircount=`swiftcd-contents|wc -l`;
    swiftcd-status
}

swiftcd-pd () 
{ 
    (( --swiftcddirnum <= 0 )) && swiftcddirnum=$swiftcddircount;
    swiftcd-switch $swiftcddirnum
    swiftcd-status
}

swiftcd-updir () 
{ 
    cd ..;
    swiftcd-setdir
}

swiftcd-list () 
{ 
    local redOn="$(echo -e '\0033[31m\0033[1m')"
    local redOff="$(echo -e '\0033[m')"

    swiftcd-status
    ((  swiftcddircount > 1 )) && { 
        echo
        echo $(swiftcd-contents|sed 's!^'"$swiftcdpath"'!!'|sed $swiftcddirnum' s/\(.*\)/'"$redOn"'\1'"$redOff"'/')
    } 
}

swiftcd-nd () 
{ 
    (( ++swiftcddirnum > swiftcddircount )) && swiftcddirnum=1;
    swiftcd-switch $swiftcddirnum
    swiftcd-status
}

swiftcd-switch() {
    (( $1 <= swiftcddircount && $1 > 0 )) && cd $(swiftcd-contents|sed -n $1' p')
}

bind '"\e ":"swiftcd-setdir\C-m"'
bind '"\ep":"swiftcd-pd\C-m"'
bind '"\eu":"swiftcd-updir\C-m"'
bind '"\en":"swiftcd-nd\C-m"'
bind '"\el":"swiftcd-list\C-m"'
swiftcd-setdir

4
O que é um campeonato de chdir? ignorante #
— Peter Jaric 19/03/11

4
Evento esportivo de navegação de diretório.
— 21811 Artisticex

14

Eu uso este, pois digito muito rápido e frequentemente sinto falta da barra de espaço:

alias cd..="cd .."

Mais inconveniente para uma pessoa não-unix ocasionalmente em uma caixa * nix +1
— mplungjan

11
s / non-unix/ Windows/
— grawity

3
Se você está digitando tão rápido que está faltando caracteres, é difícil acreditar que adicionar alias para cd..realmente ajudar.
— Olli

3
Eu posso ver como ele poderia ajudar se você vem de querido e velho DOS, onde cd..foi :) válida
— cambraca

1
Por alguma razão, eu tenho digitado muito cd na semana passada. Eu pensei que ia ter que sair do café, mas eu gosto dessa solução muito melhor.
— Erro de sintaxe

7

Experimente o autojump: autojump no github

Isso não apenas reduz o comando cd para 'j', mas também reduz os caracteres necessários para digitar a pasta na qual você deseja pular.

Se você sempre cd na pasta / home / foo / Projects / thenextfacebook, você pode simplesmente fazer 'j face' e aí está. Ele aprende automaticamente quais pastas são as mais importantes para você e depois de usá-lo por um mês, agora posso dizer que é muito preciso.


2

Eu uso alias …='cd ..'no meu .bashrcarquivo. Regras Unicode;)


1

Meu arquivo bashrc contém

alias ..="cd .. && ls -lG"

assim como

alias ,,="pushd .. && ls -lG"

1

Experimente o Cd Deluxe para obter um comando cd muito aprimorado. Ele suporta coisas como "cd ..." e "cd ...." e assim por diante, para navegar rapidamente para cima.

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.