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

30

¿Hay algún atajo para cd ..?

usuario35538
fuente
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 ...

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

Gravedad
fuente
¡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
artistoex
fuente
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 .."
malabarista
fuente
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.

mbrochh
fuente
2

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

knittl
fuente
1

Mi archivo bashrc contiene

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

tanto como

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

FuzzyWuzzy
fuente