web-dev-qa-db-fra.com

Navigation rapide dans le répertoire dans le shell bash

Je souhaite basculer fréquemment entre des répertoires qui se trouvent dans des chemins totalement indépendants, par exemple /Project/Warnest/docs/ et ~/Dropbox/Projects/ds/test/.

Mais je ne veux pas taper cd /[full-path]/ tout le temps. Existe-t-il des commandes de raccourci pour basculer vers des répertoires précédemment utilisés?

Une solution à laquelle je pourrais penser est d'ajouter des variables d'environnement à mon bash.profile pour les répertoires fréquemment utilisés et cd pour eux en utilisant ces variables.

Mais y a-t-il une autre solution à cela?

121
saiy2k

Si vous basculez simplement entre deux répertoires, vous pouvez utiliser cd - pour aller et venir.

136
Chris Card

Il existe une variable Shell CDPATH dans bash et ksh et cdpath dans zsh:

CDPATH    The search path for the cd command. This is a colon-separated
          list of directories in which the Shell looks for destination
          directories specified by the cd command.

Vous pouvez donc définir dans votre ~/.bashrc:

export CDPATH=/Project/Warnest:~/Dropbox/Projects/ds

Alors cd docs et cd test vous amènera au premier répertoire de ce type. (Je veux dire, même si un répertoire du même nom existera dans le répertoire courant, CDPATH sera toujours consulté. Si CDPATH contiendra plus de répertoires ayant des sous-répertoires avec le nom donné, le premier un sera utilisé.)

64
manatwork

Quelque chose d'autre que vous pourriez essayer est un outil appelé autojump . Il conserve une base de données d'appels à son alias (j par défaut) et tente de prendre des décisions intelligentes sur l'endroit où vous voulez aller. Par exemple, si vous tapez fréquemment:

j ~/Pictures

Vous pouvez utiliser ce qui suit pour y arriver en un rien de temps:

j Pic

Il est disponible pour Debian et Ubuntu et inclus utilisateur par utilisateur dans ~/.bashrc ou ~/.zshrc par défaut.

51
Kyle Smith

S'il s'agit d'un petit nombre de répertoires, vous pouvez utiliser pushd pour alterner entre eux:

# starting point
$ pwd
/Project/Warnest/docs
# add second dir and change to it
$ pushd ~/Dropbox/Projects/ds/test
~/Dropbox/Projects/ds/test /Project/Warnest/docs
# prove we're in the right place
$ pwd
~/Dropbox/Projects/ds/test
# swap directories
$ pushd
/Project/Warnest/docs ~/Dropbox/Projects/ds/test

contrairement à cd -, vous pouvez l'utiliser avec plus de deux répertoires


Pour donner suite à la suggestion de Noach, j'utilise maintenant ceci:

function pd()
{
    if [[ $# -ge 1 ]];
    then
        choice="$1"
    else
        dirs -v
        echo -n "? "
        read choice
    fi
    if [[ -n $choice ]];
    then
        declare -i cnum="$choice"
        if [[ $cnum != $choice ]];
        then #choice is not numeric
            choice=$(dirs -v | grep $choice | tail -1 | awk '{print $1}')
            cnum="$choice"
            if [[ -z $choice || $cnum != $choice ]];
            then
                echo "$choice not found"
                return
            fi
        fi
        choice="+$choice"
    fi
    pushd $choice
}

exemple d'utilisation:

# same as pushd +1
$ pd 1

# show a Prompt, choose by number
$ pd
 0 ~/Dropbox/Projects/ds/test
 1 /Project/Warnest/docs
 2 /tmp
? 2
/tmp ~/Dropbox/Projects/ds/test /Project/Warnest/docs

# or choose by substring match
$ pd
 0 /tmp
 1 ~/Dropbox/Projects/ds/test
 2 /Project/Warnest/docs
? doc
/Project/Warnest/docs /tmp ~/Dropbox/Projects/ds/test

# substring without Prompt
$ pd test
~/Dropbox/Projects/ds/test /Project/Warnest/docs /tmp

etc. Évidemment, cela ne sert qu'à faire défiler la pile et ne gère pas l'ajout de nouveaux chemins - je devrais peut-être le renommer.

40
Useless

J'utilise alias dans bashrc pour faire ces CD.
tel que:

alias wdoc='cd ~/Project/Warnest/docs'
alias dstest='cd ~/Dropbox/Projects/ds/test'
15
Felix Yan

J'ai trouvé un script (généralement appelé acd_funch.sh) qui a résolu ce problème pour moi. Avec cela, vous pouvez taper cd -- pour voir les 10 derniers répertoires que vous avez utilisés. Cela ressemblera à ceci:

0  ~/Documents/onedir
1  ~/Music/anotherdir
2  ~/Music/thirddir
3  ~/etc/etc

Aller à ~/Music/thirddir tapez simplement cd -2

Références

REMARQUE: Ce script a été initialement publié dans un article de la gazette linux qui est disponible ici: acd_func.sh - étend le CD de bash à conserver, afficher et accéder à l'historique des noms de répertoires visités .

12
Dean

Utilisez "pushd - n" (en supposant que vous utilisez bash).

Ajoutez à votre ~/.bashrc:

pushd -n /Project/Warnest/docs/
pushd -n ~/Dropbox/Projects/ds/test/

puis,

cd ~ est votre maison,

cd ~1 est ~/Dropbox/Projects/ds/test/

cd ~2 est /Project/Warnest/docs/

Vous pouvez utiliser ~1, ~2 etc exactement de la même manière que ~.

11
Eelvex

Essaie le cdable_vars Option shell dans bash. Vous l'allumez avec shopt -s cdable_vars.

Ensuite, vous devez définir vos variables export dir1=/some/path. et enfin cd dir1, etc. Vous pouvez ensuite le mettre dans votre ~/.bashrc pour le faire coller.

11
Wojtek

Il y a beaucoup de bonnes suggestions ici. L'option à utiliser dépendrait de votre choix entre une petite liste fixe de répertoires ou la recherche d'une solution plus générique.

S'il s'agit d'une petite liste fixe, la configuration d'alias simples (comme l'a suggéré Felix Yan) serait plus facile à utiliser.

Si vous recherchez une solution plus généralisée (c'est-à-dire de nombreux répertoires différents, changeant au fil du temps), j'utiliserais pushd et popd (comme suggéré inutile). Personnellement, je trouve que le pushd/popd par défaut est difficile à utiliser, surtout lorsque vous commencez à basculer entre de nombreux dossiers; cependant, j'ai écrit quelques ajustements qui me facilitent la tâche. Ajoutez ce qui suit à votre bashrc:

alias dirs='dirs -v'
pd () 
{ 
    if [ -n "$1" ]; then
        pushd "${1/#[0-9]*/+$1}";
    else
        pushd;
    fi > /dev/null
}
  • Utilisez pd (sous la forme abrégée de pushd) pour accéder à un nouveau dossier, en vous rappelant où vous vous trouviez.
  • Utilisez dirs pour voir la liste des répertoires enregistrés.
  • Utilisation pd 3 pour passer au répertoire numéro 3.

Exemple d'utilisation:

$ PS1='\w\$ '   ## just for demo purposes
~$ pd ~/Documents/data
~/Documents/data$ pd ../spec
~/Documents/spec$ pd ~/Dropbox/Public/
~/Dropbox/Public$ pd /tmp
/tmp$ pd /etc/defaults/
/etc/defaults$ dirs
 0  /etc/defaults
 1  /tmp
 2  ~/Dropbox/Public
 3  ~/Documents/spec
 4  ~/Documents/data
 5  ~
/etc/defaults$ pd 2
~/Dropbox/Public$ dirs
 0  ~/Dropbox/Public
 1  ~/Documents/spec
 2  ~/Documents/data
 3  ~
 4  /etc/defaults
 5  /tmp
~/Dropbox/Public$ pd 4
/etc/defaults$ dirs
 0  /etc/defaults
 1  /tmp
 2  ~/Dropbox/Public
 3  ~/Documents/spec
 4  ~/Documents/data
 5  ~
/etc/defaults$ pd 3
~/Documents/spec$ popd
~/Documents/data ~ /etc/defaults /tmp ~/Dropbox/Public
~/Documents/data$ 
8
Noach

Vous pourriez faire pire que d'essayer j2 .

Du README:

Passez beaucoup de temps sur CD-ing autour d'une arborescence de répertoires complexe?

j garde une trace de l'endroit où vous vous êtes rendu et du temps que vous y avez passé et fournit un moyen pratique d'accéder aux répertoires que vous utilisez réellement.

Je l'utilise largement et le recommande.

7
phildobbin

Les éléments suivants semblent fonctionner sur le seul cas sur lequel je l'ai testé, et vous pouvez simplement déposer vos noms de répertoire sous forme de liens symboliques dans ~/Bookmarks:

mkdir "$HOME/Bookmarks"
ln -s /tmp "$HOME/Bookmarks/testdir"

function ccd() { cd $(readlink "$HOME/Bookmarks/$1") ; }

ccd testdir && echo $PWD
# gives /tmp
7
Ulrich Schwarz

D'après mon expérience, la plus grande accélération de la navigation dans un shell est d'utiliser sa fonctionnalité de recherche d'historique. Dans Bash, vous pouvez rechercher en arrière dans votre historique de commandes en appuyant sur Ctrl + R et tapez un modèle. Ce modèle est ensuite comparé aux entrées précédentes de votre historique - qu'il s'agisse de commandes cd ou d'autres opérations - et des suggestions sont faites lors de la frappe. Appuyez simplement sur Entrée pour exécuter à nouveau la commande suggérée. C'est appelé reverse-search-history dans Bash et je l'adore. Cela me fait économiser beaucoup de frappes et épargne ma mémoire interne.

C'est une bonne chose car il suffit de se souvenir d'une partie plus petite d'une commande, comme Drop ou Wa pour distinguer les deux entrées d'historique cd ~/Dropbox/Projects/ds/test/ et cd /Project/Warnest/docs/.

6
user13742

J'utilise également ces alias (ajoutez-les à ~/.bashrc):

alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'
alias .....='cd ../../../..'

Il est beaucoup plus rapide d'aller avec eux dans le répertoire supérieur (mais cela ne résout que la moitié de la navigation).

6
reimai

Je conseillerais d'utiliser zsh , que Shell est une très bonne complétion TAB pour les répertoires, les fichiers et même les options pour la plupart des programmes cli.

J'utilise ce Shell depuis des années maintenant, et je manquerais la fonctionnalité si elle avait disparu. Le script zsh est aussi très amusant, avec un grand nombre de one-liners qui peuvent vous aider tous les jours.

6
polemon

si vous utilisez zsh:

  • vous n'avez pas besoin de taper cd, tapez simplement le chemin du répertoire (/foo/bar/baz<Enter> est égal à cd /foo/bar/baz<Enter>)

    a besoin auto_cd option à définir

  • vous pouvez développer des chemins abrégés avec la touche Tab (/u/sh/pi<Tab> se développe en /usr/share/pixmaps; fonctionne également pour les noms de fichiers)
5
Andrei Dziahel

De toute façon, vous ne devriez jamais taper le chemin complet dans Shell. Vous pouvez toujours utiliser:

soffice /P*/W*/*/mydoc*

au lieu de

soffice /Project/Warnest/docs/mydoc.odt
4
gena2x

Il existe un outil plutôt sympa pour des changements de répertoire rapides:

xd - Changeur de répertoire rapide eXtra http://xd-home.sourceforge.net/xdman.html

un peu gênant est que vous devez le mapper dans le profil bash ou similaire car il ne produit que le répertoire

# function to do `cd` using `xd`
# -g turns generalized directory search command processing on
# which improves the whole thing a bit
f() 
{
        cd `/usr/bin/xd -g $*`
}

vous pouvez faire des choses comme:

# change to /var/log/a* (gives you a list to choose from)    
f vla
# to skip the list and go directly to /var/log/Apache2
f vlapach
4
null

cdargs est l'outil le plus efficace pour marquer un annuaire: http://www.youtube.com/watch?v=uWB2FIQlzZg

3
Emon

J'avais la même question et j'ai d'abord trouvé cette réponse . J'ai installé l'utilitaire z ( https://github.com/rupa/z ).

C'est exactement ce que vous recherchez, car z apprend de vos commandes cd et garde une trace des répertoires selon le principe frecency (fréquent et récent) . Donc, après avoir fait les deux commandes cd une fois, vous pouvez faire quelque chose comme:

z docs
z ds

sauter à /Project/Warnest/docs/ et ~/Dropbox/Projects/ds/test/ respectivement. Les arguments de z sont des expressions rationnelles, vous n'avez donc même pas besoin de taper un nom de dossier complet.

3
saroele

Mise à jour (2016): J'utilise maintenant FASD pour cela, ce qui autorise le flou recherche basée sur vos derniers répertoires.


J'ai créé un outil pour cela, en Ruby. Il vous permet d'utiliser des fichiers YAML pour déclarer vos projets.

J'ai écrit un petit article à ce sujet ici: http://jrnv.nl/switching-projects-terminal-quickly/

J'ai également publié la source sur GitHub: https://github.com/jeroenvisser101/project-switcher

3
jeroenvisser101

Il existe également une application "wcd" créée spécialement pour cela (également portée sur cygwin, puisque j'y suis). Vous pouvez créer des raccourcis, des signets de répertoires avec. Prend également en charge les caractères génériques. La lecture de la page de manuel et des documents dans/usr/share/wcd devrait beaucoup aider.

http://manpages.ubuntu.com/manpages/hardy/man7/wcd.7.html

3
sam

Essayez fastcd ( https://github.com/frazenshtein/fastcd ) Il définit le hook qui enregistre les répertoires visités à partir de bash. Et définit le script comme un "j" alias, qui vous montre les derniers répertoires visités, avec la possibilité de cd rapidement (commencez à taper pour filtrer les répertoires). La modification de .bashrc est requise pour créer l'alias "j".

Obtenir un outil

cd ~; mkdir Soft; cd Soft
git clone https://github.com/frazenshtein/fastcd

Installer les modules requis

pip install --user urwid

Sourcez le fichier set.sh dans votre bashrc

echo -e "\nsource /home/$USER/Soft/fastcd/set.sh\n" >> ~/.bashrc

Et mettre à jour bashrc

source ~/.bashrc

Ensuite, tapez simplement "j" dans la console

3
Sam Toliman

Il y a aussi OLDPWD, une variable d'environnement qui, selon IEEE 1003.1 (POSIX), devrait être mise à jour avec le répertoire de travail précédent à chaque fois que cd change de répertoire de travail (pour les curieux, ligne 80244 de la page 2506 de l'IEEE 1003.1-2008).

3
njsg

J'utilise mon propre utilitaire cdhist pour gérer cela depuis de nombreuses années. Il alias votre commande cd et conserve automatiquement une pile de répertoires.

2
bulletmark

Vous pouvez utiliser export pour affecter vos chemins de répertoire aux variables, puis les référencer.

export dir1=/Project/Warnest/docs/
export dir2= ~/Dropbox/Projects/ds/test/
cd $dir1
cd $dir2
2
Fahad Naeem

anc est un outil de ligne cmd (abréviation de anchor), qui conserve les signets des répertoires. (jusqu'à présent uniquement testé avec bash)

Dans ton cas:

anc a /Project/Warnest/docs/ ~/Dropbox/Projects/ds/test/

cela ajoute les deux répertoires à la liste d'ancrage (pensez aux signets)

maintenant si vous voulez passer à /Project/Warnest/docs/ de n'importe où sur votre type de système:

anc Warn

et si vous voulez passer à ~/Dropbox/Projects/ds/test/ type:

anc ds test

En plus de faire correspondre le texte avec les chemins marqués d'un signet, il existe de nombreuses autres façons pratiques de parcourir les répertoires.

anc i

démarre le mode interactif, qui répertorie tous les signets par numéro, donc tout ce que vous avez à taper est le numéro

Si vous tapez:

anc Pro[TAB]

une liste correspondant à tous les signets (dans votre cas, les deux signets) s'affiche et vous pouvez la sélectionner à l'aide de vos touches fléchées, c'est une manière très rapide et intuitive.

Obtenez anc sur la page github du projet: https://github.com/tobimensch/anc

Il y a aussi un README avec un exemple d'utilisation.

Divulgation complète: je suis l'auteur de ce script. J'espère que certaines personnes le trouveront utile.

1
tobimensch

Je n'ai jamais aimé pushd et popd car ils nécessitent de la prévoyance. Vissez cela, nous allons simplement garder une trace des derniers répertoires par nous-mêmes et les rendre disponibles avec une fonction cd-to-old-dirs. Je l'appelle cdo. Mettez-le dans votre fichier rc (par exemple ~/.bashrc):

function precmd() { __path_log; }    # to install in zsh, harmless in bash
Prompt_COMMAND="__path_log"          # to install in bash, harmless in zsh

# Populate the array DIRHIST with the last 8 dirs visited (not for direct use)
__path_log() {
  local d dh first=true
  if [ -d "$__DIRHIST" ] && [ "$__DIRHIST" != "$PWD" ]; then
    # $__DIRHIST is the last dir we saw, but we miss foo in 'cd foo; cd bar'
    # so we use $OLDPWD to catch it; so you'd need a THIRD change to fool us.
    for d in "$__DIRHIST" "${DIRHIST[@]}"; do
      if [ -n "$first" ]; then unset DIRHIST first; DIRHIST[1]="$OLDPWD"; fi
      if [ "$OLDPWD" = "$d" ] || [ "$PWD" = "$d" ] || [ ! -d "$d" ]; then
        continue
      fi
      dh=$((1+${#DIRHIST[@]}))
      [ $dh -lt 9 ] && DIRHIST[$dh]="$d" # Push up to 8 directories
    done
  Elif [ -z "$__DIRHIST" ]; then
    DIRHIST[1]="$OLDPWD"
  fi
  __DIRHIST="$PWD"
}

cdo() {
  local d n=0
  if [ -z "${DIRHIST[1]}" ] || [ -z "$1" ]; then
    cd ${OLDPWD+"$OLDPWD"}
    return $?
  fi
  case "$1" in
    ls )   for d in "${DIRHIST[@]}"; do echo "$((n=n+1)) <$d>"; done \
             |sed "s:<$HOME:<~:;s:</home/:<~:" |column \
             |GREP_COLORS='ms=0;32' grep --color -e '\b[0-9] <' -e '>' ;;
    [1-9]) cd "${DIRHIST[$1]}" ;;
    * )    [ -d "$1" ] && cd "$1" || echo "Usage: cdo [NUM|ls]" >&2; return 2 ;;
  esac
}

L'exemple suivant utilise une invite de répertoire de hachage dollar (# dir $), choisi parce que Stack Overflow rendra les invites grises:

# ~ $ cd /tmp
# /tmp $ cdo
# ~ $ cdo ls
1 </tmp>
# ~ $ cd /
# / $ cdo ls
1 </home/adam>  2 </tmp>
# / $ cdo
# ~ $ cdo ls
1 </>   2 </tmp>
# ~ $ cdo 2
# /tmp $ cd test
# /tmp/test $ cd ../test2
# /tmp/test2 $ cdo ls
1 </tmp/test>   3 </home/adam>
2 </tmp>        4 </>
# /tmp/test2 $ cdo 4
# / $ cd
# ~ $ cdo ls
1 </>           3 </tmp/test>
2 </tmp/test2>  4 </tmp>

C'est vraiment chouette de voir que d'autres personnes ont eu la même idée générale que moi (je pensais avoir été original!). La mention de @ (Samtroliman) de fastcd , de @ null's xd et de @ phildobbin j2 sont toutes assez similaires. Voir aussi question en double 84445 , qui a une réponse zsh utilisant setopt auto_pushd . Je préfère toujours mon propre code, mais ymmv.

1
Adam Katz

Il semble que ce dont vous avez besoin soit essentiellement un fichier de projet pour votre flux de travail. Avec des répertoires qui appartiennent à votre activité, comme dans un IDE de programmation. Essayez Zsh Navigation Tools et l'outil n-cd Là. Il vous permettra de parcourir les derniers dossiers visités et de définir également un Hotlist avec les répertoires de votre choix:

n-cd

n-cd peut être lié à une combinaison de touches avec:

zle -N znt-cd-widget

bindkey "^ T" znt-cd-widget

1
Adam Lisson

La solution que j'utilise pour cette situation est screen. Écran de démarrage et créez une fenêtre pour chaque répertoire avec C-a c et y naviguer. Basculer entre les fenêtres/répertoires avec C-a n ou C-a p. Nommez les fenêtres avec C-a A. Ensuite, vous pouvez afficher une liste de vos fenêtres avec C-a " et naviguez en utilisant le numéro ou le nom de la fenêtre. Puisqu'il s'agit de screen, vous pouvez vous détacher de la session en sauvegardant votre espace de travail et le rattacher plus tard avec la même configuration.

1
David R. McWilliams

TL; DR

  1. Utilisez un Fish pour le shell interactif qui vous permet immédiatement (fish> zsh> bash).
  2. Utilisez POSIX/Bash pour les scripts qui est la syntaxe la plus largement prise en charge (POSIX> Bash> Zsh> Fish).

Coquilles

Après avoir testé différents shells, voici mes commentaires (par ordre de test/adoption):

  • Bash:
    • auto-complétion: basique;
    • expansion du chemin: non;
    • script: excellent.
  • Zsh + oh-my-zsh :
    • auto-complétion: bonne (cyclisme);
    • expansion du chemin: oui (cd /e/x1cd /etc/X11/);
    • script: bon.
  • Fish + oh-my-fish (actuel) est le meilleur de la boîte:
    • auto-complétion: options natives et prises en charge;
    • expansion du chemin: oui;
    • script: trop de différence par rapport à POSIX-compatible.

Utilisez des alias significatifs

Chaque Shell peut être développé en utilisant function et alias, voici ceux que j'utilise en rapport avec votre problème (compatible POSIX):

back () {  # go to previous visited directory
        cd - || exit
}

up () {  # go to parent directory
        cd ..|| exit
}

Il existe des bases, mais vraiment significatives, faciles à mémoriser et à compléter automatiquement.

Connaissez votre coque

Configurez CDPATH pour ajouter vos répertoires les plus utilisés (par exemple ~/projects/, /etc/init.d/) pour pouvoir y accéder rapidement.

Voir réponse manatwork pour plus de détails sur CDPATH .

Hangout et lecture

1
Édouard Lopez

Quelques suggestions ici:

Idée la plus directe, j'ajouterai un alias dans le fichier .profile

vi ~/.profile
alias dir1='cd /myhome/onedir'
alias dir2='cd /jimmy/anotherdir'

Utilisez ensuite $ dir1 ou dir2, peut cd

Si vous changez toujours en deux dir. en utilisant cd - basculera entre eux.

1
Dan

J'ai écrit un script juste pour ça. Voici le lien vers Github .

Voici un exemple d'utilisation:

Ajoutons d'abord une variable pev:

$ pev add longpath '/A/very/very/long/path/I/frequently/need'
# output:
# environment variable "pev_longpath" added successfully. "pev show" to see the list of pev variables.

Voyons maintenant une liste de variables pev définies jusqu'à présent:

$ pev show
# output:

  |   NAMES          VALUES
  |   ----------     ----------
  |   pev_longpath   "/A/very/very/long/path/I/frequently/need"

Ensuite, changez-le en répertoire:

$ cd $pev_longpath

ou copiez quelque chose dans l'un de ses sous-répertoires:

$ cp somefile $pev_longpath/and/deeper/than/that

En fait, les variables pev ne sont pas différentes des autres variables d'environnement, elles sont probablement plus faciles à gérer. N'hésitez pas à me signaler mes erreurs car je n'ai pas beaucoup d'expérience avec les scripts Shell. HTH.

0
aderchox

Sur la base de vos critères, je pense simplement définir un alias pour chaque chemin fréquemment utilisé dans votre ~/.bashrc est la voie à suivre. J'utilise cette méthode personnellement.

alias taxes='cd /users/bob/documents/home/finances/taxes'
alias elvis='cd /dropbox/2016/files/music/elvis'

Comme je l'ai mentionné pour une question connexe ( link ), si vous avez parcouru l'arborescence des répertoires et que vous souhaitez remonter, .. est mon préféré. Vous pouvez vous déplacer assez facilement dans une branche de l'arborescence avec .. en remontant un répertoire et ../.. deux et ../../.. trois, etc. Vous pouvez également monter et descendre une branche différente avec la même commande, comme cd ../../example ou cd ../../../example/example etc. Pour un simple commutateur qui va et vient entre les répertoires, cd - ou $OLDPWD sont vos meilleurs paris.

0
Adam Erickson

De loin, la meilleure solution pour une navigation rapide dans les répertoires dans les terminaux bash et zsh est d'installer le script z - jump around . Ce script incontournable a été recommandé par Google Chrome Devtools, Paul Irish, dans son 2013 Fluent keynote . Je ne peux pas vivre sans.

DESCRIPTION Suit vos répertoires les plus utilisés, en fonction de la "fréquence".

Après une courte phase d'apprentissage, z vous amènera dans le répertoire le plus "frecent" qui correspond à TOUTES les expressions rationnelles données sur la ligne de commande, dans l'ordre.

Par exemple, z foo bar correspondrait à/foo/bar mais pas/bar/foo.

[...]

Frecency est un portemanteau de "récent" et de "fréquence".

0
Alxs

le répertoire de travail (wd) d'Atomic semble être un bon paquet pour cela: https://github.com/karlin/working-directory

0
saiy2k

J'ai implémenté 2 fonctions bash:

cdh (historique des cd): il se souvient automatiquement des 9 derniers répertoires et vous pouvez revenir à l'un d'eux en entrant le numéro.

cdb (signets cd): vous pouvez affecter n'importe quel caractère au répertoire en cours et accéder ultérieurement à ce répertoire en saisissant ce caractère.

cdh et cdb fonctionnent tous les deux avec autocd (alias "cd sans cd").

Voir http://fex.belwue.de/fstools/bash.html

0
Framstag