224 votes

Comment puis-je passer au répertoire précédent au lieu de monter ?

Je passe actuellement une grande partie de mon temps de travail à faire des allers-retours entre deux voies qui sont très loin dans l'arbre et se détournent l'une de l'autre à la racine. Il me semble que ma vie serait beaucoup plus facile s'il y avait un argument pour cd qui ramène l'utilisateur au dernier répertoire dans lequel il se trouvait.

Enfin, si j'en suis :

/etc/foo/bar/baz/moo

puis tapez :

cd /var/lib/fubarred_app/blargh/logs

J'aimerais pouvoir revenir au premier répertoire sans avoir à retaper tout le chemin.

La clé de mémoire ne suffit pas, car j'utilise suffisamment de commandes à chaque endroit pour qu'il soit aussi difficile de revenir en arrière et de trouver le chemin que je veux que de le taper moi-même.

Existe-t-il une commande courte qui me permettrait d'aller dans le répertoire précédent ?

9 votes

En plus de @ bryan Dans l'excellente réponse de l'auteur, vous pourriez envisager de créer une paire d'alias pour chaque chemin afin de pouvoir simplement taper quelque chose comme : " bazmoo " ou " blarghlog "à l'invite :)

4 votes

Pourquoi n'utilises-tu pas simplement Écran GNU ?

2 votes

Quel Shell ? Cela fait une énorme différence.

7voto

Handyman5 Points 268

bashmarks vous permettra de mettre en signet une série de dossiers et de passer de l'un à l'autre à l'aide d'une tabulation :

Pour mettre un dossier en signet, il suffit d'aller dans ce dossier, puis de le mettre en signet comme suit :

bookmark foo

Le signet sera nommé "foo". Lorsque vous voulez revenir à ce dossier, utilisez :

go foo

Pour voir une liste des signets :

bookmarksshow

La complétion de l'onglet fonctionne, pour aller au signet shoobie, simplement :

go sho[tab]

5voto

Steffanie Points 21

Une autre possibilité serait de garder deux fenêtres ouvertes, avec une position sur chaque répertoire.

0 votes

Pas d'historique partagé cependant, si vous utilisez/éditez régulièrement les commandes précédentes (peut-être qu'une réinitialisation les récupérerait... ?).

0 votes

@Xen2050 Voir l'option Shell. share_history dans zsh.

4voto

phareim Points 149

Je sais que ce n'est pas à proprement parler une réponse à votre question, mais c'est utile pour atteindre le but de vous conduisant à vos répertoires importants .

dans tout UNIX-bash descendant, vous pouvez utiliser CDPATH pour étendre le dossier dans lequel la commande cd cherche.

de mon fichier .bashrc :

export CDPATH='.:~/source/'

cd cherche d'abord dans votre dossier actuel, puis dans le répertoire de mon projet de codage.

cd myproject

me conduit à ~/sources/myprojet de l'endroit où je me trouve actuellement.

Une simple petite fonctionnalité qui a beaucoup aidé ma navigation dans le répertoire.

1 votes

+1 Cela ajoute le dossier CDPATH à cd La liste d'autocomplétion (TAB) de l'entreprise, ce qui est bien. Mais si le . n'est pas inclus et s'il existe un dossier dans un CDPATH avec le nom même nom comme un dans votre répertoire actuel, puis cd samename ira dans le répertoire CDPATH et no celui du répertoire courant, qui est Bad. Il faut utiliser cd ./samename pour entrer dans un dossier de duplication.

0 votes

Oui, bon commentaire. Il faut toujours inclure le premier . ou tu vas vivre des choses bizarres.

3voto

Derek Wyatt Points 131

Yup, cd - est la voie à suivre mais je m'inquiète du manque de puissance que vous avez dans votre Shell. popd y pushd sont également bonnes, et que j La chose a également l'air bien.

Je vais lancer mon propre utilitaire dans le ring... c'est juste quelque chose que je construis, personnalise et migre avec moi depuis une dizaine d'années et qui fonctionne très bien pour ce que je veux faire.

Article de blog pour mon utilitaire de gestion de répertoire

Si ça marche pour toi, alors c'est génial, mais si ça ne marche pas, promets-moi que tu prendras autre chose :) Vous ne pouvez tout simplement pas vivre avec cd seul.

3voto

s0dafire Points 148

Si vous n'avez que 2 répertoires, la méthode la plus simple est, comme mentionné,

cd -

Lorsque j'ai eu ce genre de problème dans le passé, j'ai eu recours à quelques astuces qui pouvaient être utiles.

  1. Mettez des commandes alias dans le fichier .cshrc, quelque chose comme ceci

    alias moo /etc/foo/bar/baz/moo  
    alias logs cd /var/lib/fubarred_app/blargh/logs
  2. Lier des raccourcis vers les chemins d'intérêt à partir de mon répertoire personnel. Il s'agit d'une opération ponctuelle.

    cd ~
    ln -s /var/lib/fubarred_app/blargh/logs blargh
    ln -s /etc/foo/bar/baz/moo

Cela permettrait de changer un répertoire aussi facilement que :

   cd ~/moo
   cd ~/blargh

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