Un raccourci pour «cd ..»?


30

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


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


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

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.


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

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 .."

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.


2

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


1

Mon fichier bashrc contient

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

aussi bien que

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

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.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.