Revenir au répertoire précédent dans le shell

306

Existe-t-il un moyen de revenir au répertoire précédent dans lequel nous utilisions bash, tcsh sans utiliser pushd / popd? J'aimerais taper quelque chose comme "back" et je suis retourné au répertoire précédent dans lequel j'étais.

Modifier:

"cd -" fonctionne, mais uniquement pour les répertoires actuels et précédents. Y a-t-il un moyen de revenir en arrière dans le répertoire précédent précédent, comme pour revenir dans le navigateur Web?

Cordialement

Don Ch
la source
1
Comme indiqué ci-dessous, vous pouvez le faire en utilisant "pushd" et "popd".
blueyed
8
Juste une note de côté "cd -" va dans le répertoire par défaut de l'utilisateur (/ home / nom d'utilisateur)
sdaffa23fdsf
1
Meilleure réponse imho : unix.stackexchange.com/a/180640/158177 fournit les cd-1 à cd -9, ce que je pense être ce que l'OP a demandé
Titou le

Réponses:

413

cd - (retourne au répertoire précédent)

Si vous voulez pouvoir accéder aux autres répertoires précédents, ce n'est pas possible immédiatement. Mais vérifiez ce script et les instructions:

Historique des annuaires visités dans le BASH

La commande cd fonctionne comme d'habitude. La nouvelle fonctionnalité est l’historique des 10 derniers répertoires et la commande cd développée pour y être affichée et accessible. cd - (ou simplement en appuyant sur ctrl + w) montre l'historique. En face de chaque nom de répertoire, vous voyez un numéro. cd -num avec le numéro de votre choix passe au répertoire correspondant de l'historique.

Snark
la source
20
aussi pushd et popd pourraient être utiles
lorenzog
6
@lorenzog: lydonchandra, dans sa question, a déclaré "sans utiliser pushd / popd"
Snark
@ ogc-nick pour l' utilisation de cette cd --manière de menu comme, vous devez utiliser le script mentionné
Ram
1
@ ogc-nick non, ce n'est pas le cas. Le --sépare simplement une commande et ses options des paramètres (voir cet article ). Puisqu'aucun argument ne suit --, la dernière commande consiste simplement à cdbasculer vers votre répertoire personnel. C’était peut -être le deuxième répertoire précédent, mais c’est une coïncidence.
Griddo
wow sucre syntaxique beaucoup
BugWhisperer
24

Vous pouvez également utiliser variable cd $OLDPWD. Ceci peut également être utilisé dans des scripts shell.

Ales Dolecek
la source
6
$ OLDPWD maintient le dernier répertoire d'où vous venez, ce qui est bon pour les scripts. J'utilise beaucoup $ OLDPWD avec la commande cp. Par exemple, cp -v $ OLDPWD / fichier.
Neil Wightman
1

Pour Windows (y compris le cas de la console d'invite de commande de commode Node.js) ne fonctionne pas cd - Pour vous déplacer vers le haut d'un répertoire fonctionne

cd ..
IgorBeaz
la source
3
cd .. passe dans le répertoire parent, ce qui n’est pas le sujet de la question.
ViaSat
1
C'est bash ici, pas Windows.
Timo
0

Je trouve que le moyen le plus simple de le faire est avec cette édition de puissance .bashrc: https://github.com/wting/autojump . Vous pouvez "marquer" les dossiers dans lesquels vous naviguez, en leur donnant un nom abrégé facile à mémoriser (mon conseil; ce qui précède n’est pas dans la documentation), comme Pics for Pictures, etc. 'marqué' et 'marques' répertorie les dossiers que vous avez ajoutés à la 'pile' (comme avec pushd et pop d), avec l'avantage supplémentaire que vos marques restent les mêmes d'une session à l'autre, à l' infini.

Je n'ai pas encore essayé sur plusieurs disques durs, mais les résultats devraient être similaires à ceux obtenus avec un seul volume.

S Wright

Steve Wright
la source
-1

Si vous avez descendu dans l’arborescence et que vous voulez remonter, cd ..c’est mon préféré. Vous pouvez facilement naviguer dans une branche de l’arbre en gravissant cd ..un répertoire et cd ../..deux ou cd ../../..trois, etc. Vous pouvez également monter et descendre d’une branche différente à l’aide de la même commande, telle que cd ../../exampleou, cd ../../../example/exampleetc. aller et venir entre les annuaires, cd -ou $OLDPWDsont vos meilleurs paris, comme d'autres ont mentionné.

Adam Erickson
la source
Une raison particulière pour laquelle cela a été voté? Il contient des réponses correctes, mais peut-être pas les seules.
Adam Erickson le
-2

Je pense que cd ..pourrait aider. Si vous faites un ls -adans n'importe quel répertoire, vous verrez qu'il y a deux entrées: l'une nommée "." et un autre nommé ".."; le point unique fait référence au répertoire dans lequel vous vous trouvez déjà, tandis que le double correspond au répertoire précédent dans le chemin.

Xente
la source
22
..n'est pas le répertoire précédent, c'est juste le répertoire parent.
Der Hochstapler
4
Cette réponse fournit des informations utiles même si elle ne répond pas correctement à la question. Il n’ya donc aucun intérêt à accumuler des votes négatifs, j’ai voté pour l’effort.
Titou
1
Ce n'est pas Berkley, il n'y a pas de prix spécial rien que pour la participation
nathanchere