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.