Un raccourci pour «cd ..»?

30

Y a-t-il un raccourci pour cd ..?

user35538
la source
47
Faut-il autant de temps pour taper?
droite
17
OUI, cela prend trop de temps pour quelque chose dont on a souvent besoin.
maaartinus
2
Essayez push and pop
Zachary Scott
19
Je suis terriblement amusé que quelqu'un trouve cd ..trop lourd à taper
Erik
8
Je soupçonne que les personnes qui ont besoin ' cd ..' ont si souvent l' cdanti-modèle «Je dois dans un répertoire avant de parler des fichiers là-bas», plutôt que de spécifier les chemins d'accès au système de fichiers.
bignose

Réponses:

68

Pas par défaut (il peut y avoir quelques exceptions), il n'y en a pas. Mais si vous utilisez la aliascommande, vous pouvez créer un raccourci comme celui-ci:

alias ..="cd .."

Cela vous permettra d'utiliser la commande ..pour le faire cd ...

Wuffers
la source
10
Merde, je tapais exactement la même chose.
Majenko
6
J'utilise aussi alias ...="cd ../.."et deux autres. De plus, je peux recommander alias ,=cd "$OLDPWD".
maaartinus
13
@maaartinus: cd -.
Benjamin Bannier
1
@honk je ne le savais pas. Cependant, c'est trop long (et je n'ai pas besoin de la sortie).
maaartinus
1
Quelqu'un pourrait-il expliquer le downvote?
Wuffers
82

Activez l' autocdoption. Il vous permettra de taper ..pour cd ..et utiliser réellement vous laisser un répertoire comme nom de la commande et la volonté cdde le:

shopt -s autocd

Pour les curieux, il en va de même pour zsh:

setopt auto_cd
sam hocevar
la source
1
C'est fantastique. Il est temps d'éditer .bashrc sur toutes mes boîtes Linux. Malheureusement, cela ne semble pas fonctionner avec cygwin bash.
jongleur
3
Woah, c'est génial.
Reid
5
@gordoco: ouais, c'est bash 4.x seulement. C'est la raison pour laquelle j'utilise zsh depuis 14 ans.
sam hocevar
1
zsh(+ auto_cd) FTW!
Johnsyweb
2
@LaC: La supériorité technique n'est pas toujours un déterminant de la domination. Bash est beaucoup plus ancien et a beaucoup plus écrit en l'utilisant, et pratiquement tous les programmeurs shell le savent, plus que toute autre chose. Le changement peut être difficile. - de quelqu'un qui ne sait pas de quoi parle tout le bruit zsh, et qui n'a vraiment jamais utilisé bash :)
tshepang
42

Je trouve cela utile:

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

Par exemple, up 4=cd ../../../..

En prime, `up 4`/path/to/filefonctionne de manière similaire à ../../../../path/to/file.

Grawity
la source
C'est intéressant! En 2007, j'ai écrit une [fonction] similaire ( home.arcor.de/hirnstrom/minis/index.html#up_X ) pour mon fichier .bashrc. Votre solution permet également de reculer d'un bout à l'autre cd -. Bien joué! :)
utilisateur inconnu
Agréable. J'avais quelque chose comme ça pour VMS DCL quand j'ai travaillé là-dessus, mais je n'y ai pas vraiment pensé quand je suis passé à Unix et ses variantes.
GreenMatt
16

Après avoir fait un

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

vous pouvez cd ..en appuyant sur Alt-u. J'avais l'habitude de l'utiliser sur les championnats chdir ;-)

Si vous voulez toute 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

il suffit de l'inclure dans votre .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
la source
4
Qu'est-ce qu'un championnat chdir? ignorant
Peter Jaric
4
Événement sportif de navigation d'annuaire.
artistoex
14

J'utilise celui-ci car je tape trop vite et manque souvent la barre d'espace:

alias cd..="cd .."
jongleur
la source
Le plus gênant pour une personne non-unix occasionnellement sur une boîte * nix +1
mplungjan
11
s / non-unix/ Windows/
grawity
3
Si vous tapez si vite qu'il vous manque des caractères, il est difficile de croire que l'ajout d'un alias est cd..vraiment utile.
Olli
3
Je peux voir comment cela pourrait aider si vous venez de mon cher vieux DOS, où cd..était valide :)
cambraca
1
Pour une raison quelconque, j'ai tapé cd .. beaucoup la semaine dernière. Je pensais que j'allais devoir arrêter de café mais j'aime mieux cette solution.
Erreur de syntaxe du
7

Essayez autojump: autojump sur github

Cela raccourcira non seulement la commande cd en «j», mais raccourcira également les caractères nécessaires pour taper le dossier dans lequel vous souhaitez sauter.

Si vous cd toujours dans le dossier / home / foo / Projects / thenextfacebook, vous pouvez simplement faire «j face» et vous y êtes. Il apprend automatiquement quels dossiers sont les plus importants pour vous et après l'avoir utilisé pendant un mois, je peux dire qu'il est très précis.

mbrochh
la source
2

J'utilise alias …='cd ..'dans mon .bashrcdossier. Règles Unicode;)

knittl
la source
1

Mon fichier bashrc contient

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

aussi bien que

alias ,,="pushd .. && ls -lG"
Wrashi
la source
1

Essayez Cd Deluxe pour une commande cd grandement améliorée. Il supporte des choses comme "cd ..." et "cd ...." et ainsi de suite afin de naviguer rapidement vers le haut.

FuzzyWuzzy
la source