J'ai un script dans un dossier que j'utilise avec de longs arguments. Y a-t-il une chance que je puisse avoir un historique des commandes exécutées dans ce répertoire spécifique au lieu de parcourir l'historique en entier?
11
J'ai un script dans un dossier que j'utilise avec de longs arguments. Y a-t-il une chance que je puisse avoir un historique des commandes exécutées dans ce répertoire spécifique au lieu de parcourir l'historique en entier?
history | less
peut-être? Cela ne répond pas vraiment à votre question, mais c'est par là que je commencerais.Réponses:
En vous connectant à PROMPT_COMMAND de bash, cette fonction est exécutée chaque fois que vous obtenez une nouvelle invite, c'est donc un moment décent pour vérifier si vous êtes dans un répertoire pour lequel vous souhaitez un historique personnalisé. La fonction a quatre branches principales:
$PWD
) n'a pas changé, ne faites rien (retour).Si le PWD a changé, nous mettons en place une fonction locale dont le seul but est de factoriser le code "répertoire personnalisé" en un seul endroit. Vous voudrez remplacer mes répertoires de test par les vôtres (séparés par
|
).Puisque nous avons changé de répertoire, mettez à jour la variable "répertoire précédent", puis enregistrez l'historique en mémoire dans le HISTFILE, puis effacez l'historique en mémoire.
Si nous avons changé en un répertoire personnalisé, définissez HISTFILE pour être un
.bash_history
fichier dans le répertoire actuel.Sinon, nous avons changé de répertoire personnalisé, alors réinitialisez HISTFILE dans le répertoire d'origine.
Enfin, puisque nous avons modifié les fichiers d'historique, relisez cet historique précédent.
Pour faire avancer les choses, le script définit la valeur PROMPT_COMMAND et enregistre deux variables à usage interne (le stock HISTFILE et le "répertoire précédent").
la source
La réponse de Jeff est excellente si vous voulez l'historique d'un seul répertoire, mais si vous êtes d'accord avec l'installation de zsh, vous pouvez utiliser per-history-directory pour obtenir un historique spécifique au répertoire pour tous les répertoires.
Vous pouvez installer zsh en:
Sinon, si vous voulez installer oh-my-zsh , vous pouvez ajouter dans le histdb plug - in et d' écrire une requête personnalisée pour interroger la sqlite db que histdb ajoute. J'écrit à ce sujet et en ajoutant complétions auto dans un Diaries Dev poste. Vérifiez la section des commandes bonus .
La requête ressemble à ceci
Cela accepte également une limite facultative:
par exemple.
la source
Lorsque j'ai besoin d'utiliser plusieurs fois une commande avec de longs arguments, je crée généralement un alias dans my
~/.bash_aliases
ou vous pouvez le mettre dans votre~/.bashrc
si vous préférez. C'est facile et gagnez du temps, recherchez plutôt les anciennes commandes de l'historique.la source