Algum atalho para "cd .."?

30

Existe algum atalho para cd ..?

user35538
fonte
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 ...

Wuffers
fonte
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
sam hocevar
fonte
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.

gravidade
fonte
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
artistoex
fonte
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 .."
malabarista
fonte
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.

mbrochh
fonte
2

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

knittl
fonte
1

Meu arquivo bashrc contém

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

assim como

alias ,,="pushd .. && ls -lG"
Wrashi
fonte
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.

Felpudo, macio
fonte