390 votes

Retourner au répertoire précédent dans Shell.

Existe-t-il un moyen de revenir au répertoire précédent dans lequel nous étions en utilisant bash, tcsh sans utiliser pushd/popd ? J'aimerais taper quelque chose comme "back" et être renvoyé au répertoire précédent dans lequel je me trouvais.

Editar:

"cd -" fonctionne, mais seulement pour les répertoires actuels et précédents. Existe-t-il un moyen de revenir au répertoire précédent, comme on peut revenir en arrière dans un navigateur Web ?

Salutations

1 votes

Comme indiqué ci-dessous, vous pouvez le faire en utilisant "pushd" et "popd".

8 votes

Remarque : "cd --" va dans le répertoire par défaut de l'utilisateur (/home/username).

1 votes

Meilleure réponse imho : unix.stackexchange.com/a/180640/158177 fournit cd -1 à cd -9 ce qui, je pense, est ce que l'OP a demandé.

531voto

Snark Points 31409

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

Si vous voulez pouvoir aller dans les autres répertoires précédents, ce n'est pas possible d'emblée. Mais vérifiez ce script et les instructions :

Historique des répertoires visités en BASH

La commande cd fonctionne comme d'habitude. La nouvelle fonctionnalité est l'historique des 10 derniers répertoires et la commande cd s'est développée pour l'afficher et y accéder. cd -- (ou simplement en appuyant sur ctrl+w) affiche l'historique. Devant chaque nom de Devant chaque nom de répertoire, vous voyez un numéro. cd -num avec le numéro que vous voulez saute au répertoire correspondant de l'historique. l'historique.

32 votes

Pushd et popd peuvent également être utiles

8 votes

@lorenzog : lydonchandra, dans sa question, a dit " sans utiliser pushd/popd ".

0 votes

@ogc-nick pour avoir utilisé ceci cd -- à la manière d'un menu, vous devez utiliser le script mentionné.

37voto

Ales Dolecek Points 400

Vous pouvez également utiliser la variable cd $OLDPWD . Ceci peut également être utilisé dans Shell Shell.

8 votes

$OLDPWD conserve 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/file .

1 votes

Il convient de souligner qu'en utilisant cd $OLDPWD hace pas n'imprime rien sur la sortie standard, tandis que cd - semble le faire habituellement. C'est une meilleure solution pour la plupart des scripts.

0 votes

Je ne pense pas ! !! Le cd - est pratique lorsque vous travaillez dans interactive Shell pour ne pas avoir à écrire de longues commandes et avoir un retour là où vous êtes. Mais pour Shell vous devriez définitivement utiliser $OLDPWD comme le font habituellement les scripts. pas veulent cd pour imprimer quoi que ce soit à stdout ! De même, la valeur de $OLDPWD ne doit pas être utilisé uniquement pour retour en arrière . Vous pouvez par exemple l'utiliser avec ls ou comparer à $HOME ou un autre répertoire. Le site POSIX dit que cd - est équivalent à cd "$OLDPWD" && pwd .

2voto

Steve Wright Points 31

Je trouve que la façon la plus simple de le faire est de modifier le fichier .bashrc : https://github.com/wting/autojump . Vous pouvez "marquer" les dossiers dans lesquels vous naviguez, en leur donnant un nom abrégé facile à retenir (mon conseil ; ce qui précède n'est pas dans la documentation), tel que Photos pour les photos, etc. La fonction " saut " vous ramène au dossier que vous avez " marqué ", et la fonction " marques " répertorie les dossiers que vous avez ajoutés à la " pile " (comme avec la fonction pushd y pop d), avec l'avantage supplémentaire que vos notes restent les mêmes d'une session à l'autre, à l'infini.

Je n'ai pas encore essayé sur plus d'un disque dur, mais les résultats devraient être similaires à ceux obtenus avec un seul volume.

S Wright

0 votes

Merci pour cette solution alternative. Je vais essayer cet outil autojump.

0voto

Xente Points 87

Creo que cd .. pourrait aider. Si vous faites un ls -a dans n'importe quel répertoire, vous verrez qu'il y a deux entrées : une nommée "." et une autre nommée ".." ; le point simple 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.

32 votes

.. n'est pas le répertoire précédent, c'est juste le répertoire parent.

7 votes

Cette réponse fournit des informations utiles même si elle ne répond pas correctement à la question. Il n'y a donc pas lieu d'accumuler les votes négatifs, j'ai upvoted pour l'effort.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X