Existe-t-il quelque chose comme l'historique de recherche inversée de bash (Ctrl-r), mais uniquement pour les répertoires?
J'ai des hiérarchies de dossiers approfondies vers lesquelles je veux passer, donc j'aimerais utiliser quelque chose comme la recherche inversée-historique, mais il ne recherche que les noms de dossiers et me donne des chemins absolus.
Essentiellement, cela donnerait des résultats similaires à ceux de l'utilisation, !?
mais uniquement des commandes correspondantes avec cd à l'avant, vous pouvez parcourir les résultats et les chemins d'accès complets.
Jusqu'à présent, la meilleure solution que j'ai trouvée est celle des bashmarks .
Réponses:
Jetez un oeil à autojump :
la source
Il y a
c'est la commande "cd [espace] [trait d'union]", qui va dans le répertoire que vous étiez auparavant, essentiellement un "historique de la profondeur 1". "Cd -" répété bascule entre deux répertoires.
Page de manuel de citation:
Malheureusement, je ne connais pas de véritable historique de répertoire intégré.
la source
pushd dir
popd
paire qui peut stocker votre pile d'historique de répertoires. C'est vraiment utile dans les scripts qui fonctionnent dans différents dossiers.pushd
etpopd
, et il est également mentionné ici déjà.bash a pushd / popd / dirs. J'ai ceci dans mon .bashrc pour pousser automatiquement les répertoires sur la pile de bash.
Pop ces en utilisant
popd
et afficher la pile en utilisantdirs
la source
J'ai une bonne expérience du z-jump. Il permet l'achèvement, mais uniquement pour la destination finale, sans passer par un chemin. Il montre cependant le chemin complet à la fin de l'onglet.
la source
Juste pour faire écho à ma propre expérience, j'ai écrit un script simple pour répondre à cette exigence il y a quelque temps, il remplace la commande cd intégrée avec une fonction simple qui ajoute le nouvel emplacement du répertoire à un fichier historique, un script python est ensuite utilisé pour fournir une interface bash qui met à jour dynamiquement une liste ordonnée de répertoires lorsque vous entrez des termes de recherche, un peu comme la recherche de commande inversée de bash.
Il est disponible sur git-hub pour les curieux.
la source
Je voudrais recommander ma
ltcd
pour une navigation rapide dans l'historique des répertoires:https://github.com/dczhu/ltcd
Il offre les fonctionnalités suivantes pour vous faciliter la vie:
la source
J'ai créé un script qui a des fonctionnalités similaires à la commande oh-my-zsh
dirs -v
qui fonctionne sur bash. Si vous avez déjà utilisé oh-my-zsh , vous avez peut-être remarqué que l'historique des répertoires fourni par la commandedirs -v
sera réinitialisé à chaque fois que vous quittez le terminal. Cependant, cela ne se produira pas si vous utilisez ce script .La fonctionnalité:
Afficher la liste des 10 répertoires utilisés les plus récents avec
d
.Accédez à n'importe quel répertoire de la liste en tapant le numéro du répertoire dans la liste. Vous devez utiliser 0 au lieu de 10 pour accéder au 10e répertoire.
Un chemin de répertoire sera placé en haut de la liste chaque fois que vous utilisez
v
( vim ) pour modifier des fichiers ouo
( xdg-open ) pour ouvrir un fichier à partir de ce répertoire. Ou si vous le souhaitez, chaque fois que vous visitez un annuaire.Vous pouvez le voir en action ici .
la source
Eh bien, vous pouvez ajouter cet extrait de code à votre
~/.bashrc
, quifournit une commande cd personnalisée
et fournit une commande de recherche d'historique de cd.
Bien sûr, la commande cdhiste que j'ai fournie est très basique, et pas ce que vous vouliez; mais il est concevable d'utiliser des déclarations de cas ou une expansion de paramètres pour obtenir quelque chose de similaire à ce que vous voulez.
Vous pouvez même ajouter une fonction "Achèvement programmable", qui pourrait être utilisée pour ajouter la
cd /path/to/mydir
commande complète basée sur une sous-chaîne unique de/path/to/unique/mydir
, bien que cette méthode vous obligerait à tapercd unique/mydir<tab>
.la source
dirs
commande de bash qui fait essentiellement la même chose quemy_dirs
, mais sur une seule ligne.alias cd=pushd
serait la forme la plus élégante.Vous pouvez construire votre propre
cd
commande avecpushd
,popd
, lesdirs
commandes internes.Usage
cd --
(énumérer l'historique actuel)cd -num
(allez dans le répertoire num)cd -
(aller au répertoire précédent)la source
J'ai assemblé cet outil, qui combine les solutions précédentes pour stocker un historique CLI global complet avec un outil d'interception interactif appelé percol (mappé sur C ^ R). Je l'utilise pour récupérer des commandes par où elles ont été exécutées ou pour trouver un répertoire par une commande. Il est toujours lisse sur la première machine que j'ai commencé à utiliser, maintenant avec un historique CLI> 2 ans.
L'outil grep fonctionne à la fois sur le chemin d'accès et sur la commande, mais peut toujours vous être utile. Voir aussi 'dirs -v' dans zsh
https://github.com/gawells/ariadne
la source
cd share/man
Ne fonctionne donc que si je suis déjà dans / usr.