¿Algún atajo para "cd .."?


30

¿Hay algún atajo para cd ..?


47
¿Tarda tanto en escribir?
derecha el

17
SÍ, toma demasiado tiempo para algo que se necesita con tanta frecuencia.
maaartinus

2
Prueba push and pop
Zachary Scott

19
Estoy terriblemente divertido de que alguien encuentre cd ..demasiado engorroso para escribir
Erik

8
Sospecho que las personas que necesitan ' cd ..' a menudo tienen el cdantipatrón “Debo ingresar a un directorio antes de hablar sobre los archivos allí”, en lugar de especificar rutas del sistema de archivos.
bignose

Respuestas:


68

No por defecto (puede haber algunas excepciones a esto), no las hay. Pero si usa el aliascomando puede crear un acceso directo como este:

alias ..="cd .."

Esto te permitirá usar el comando ..para hacer cd ...


10
Maldición, estaba escribiendo exactamente lo mismo.
Majenko

66
Estoy usando también alias ...="cd ../.."y dos más. Además, puedo recomendar alias ,=cd "$OLDPWD".
maaartinus

13
@maaartinus: cd -.
Benjamin Bannier

1
@honk no lo sabía. Sin embargo, es demasiado largo (y no necesito la salida).
maaartinus

1
¿Podría alguien explicar el voto negativo?
Wuffers

82

Activa la autocdopción. Se le permitirá escribir ..de cd ..y en realidad le permiten usar cualquier directorio como un nombre de comando y la voluntad cda la misma:

shopt -s autocd

Para los curiosos, lo mismo existe para zsh:

setopt auto_cd

1
Eso es fantástico. Es hora de editar .bashrc en todos mis cuadros de Linux. Desafortunadamente, no parece funcionar con cygwin bash.
malabarista

3
Woah, eso es asombroso.
Reid

55
@gordoco: sí, solo es bash 4.x. Es la razón por la que he estado usando zsh durante 14 años.
sam hocevar

1
zsh(+ auto_cd) FTW!
Johnsyweb

2
@LaC: La superioridad técnica no siempre es determinante del dominio. Bash es mucho más antiguo y tiene mucho más escrito usándolo, y prácticamente todos los programadores de shell lo saben, más que cualquier otra cosa. El cambio puede ser difícil. - de alguien que no sabe de qué se trata todo el ruido zsh, y que realmente solo ha usado bash :)
tshepang

42

Esto me parece útil:

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

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

Como beneficio adicional, `up 4`/path/to/filefunciona de manera similar a ../../../../path/to/file.


¡Eso es interesante! En 2007 escribí una [función] similar ( home.arcor.de/hirnstrom/minis/index.html#up_X ) para mi archivo .bashrc. Su solución también permite retroceder todo el camino cd -. ¡Bien hecho! :)
usuario desconocido

Agradable. Tenía algo como esto para VMS DCL cuando trabajé en eso, pero realmente no pensé en eso cuando me mudé a Unix y sus variantes.
GreenMatt

16

Después de hacer un

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

puedes cd ..presionando Alt-u. Solía ​​usar esto en campeonatos de chdir ;-)

Si quieres toda la suite 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

solo incluye esto en tu .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

44
¿Qué es un campeonato chdir? ignorante
Peter Jaric

44
Directorio de eventos deportivos de navegación.
artistoex

14

Uso este porque escribo demasiado rápido y a menudo echo de menos la barra espaciadora:

alias cd..="cd .."

La mayor inconveniente para una persona no-UNIX vez en cuando en un cuadro de * nix 1
mplungjan

11
s / non-unix/ Windows/
grawity

3
Si está escribiendo tan rápido que le faltan caracteres, es difícil creer que agregar un alias cd..realmente ayude.
Olli

3
Puedo ver cómo podría ayudar si vienes del viejo y querido DOS, donde cd..era válido :)
cambraca

1
Por alguna razón, he estado escribiendo cd ... mucho durante la semana pasada. Pensé que iba a tener que dejar el café, pero esta solución me gusta mucho más.
Error de sintaxis el

7

Prueba autojump: autojump en github

Esto no solo acortará el comando cd en 'j' sino que también acortará los caracteres necesarios para escribir la carpeta en la que desea saltar.

Si siempre ingresa en la carpeta / home / foo / Projects / thenextfacebook, simplemente puede hacer 'j face' y ya está. Aprende automáticamente qué carpetas son las más importantes para usted y después de usarlo durante un mes ahora puedo decir que es muy preciso.


2

Yo uso alias …='cd ..'en mi .bashrcarchivo. Reglas Unicode;)


1

Mi archivo bashrc contiene

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

tanto como

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

1

Prueba Cd Deluxe para obtener un comando de CD muy mejorado. Admite cosas como "cd ..." y "cd ...." y así sucesivamente para navegar rápidamente hacia arriba.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.