Tengo un script en una carpeta que uso con argumentos largos. ¿Hay alguna posibilidad de que pueda tener un historial de los comandos ejecutados en ese directorio específico en lugar de volver a revisar todo el historial?
bash
directory
command-history
faber
fuente
fuente
history | less
¿quizás? Realmente no responde a tu pregunta, pero ahí es donde comenzaría.Respuestas:
Al engancharse a PROMPT_COMMAND de bash, esta función se ejecuta cada vez que recibe una nueva solicitud, por lo que es un momento decente para verificar si está en un directorio para el que desea un historial personalizado. La función tiene cuatro ramas principales:
$PWD
) no ha cambiado, no haga nada (volver).Si el PWD ha cambiado, entonces configuramos una función local cuyo único propósito es factorizar el código del "directorio personalizado" en un solo lugar. Querrás reemplazar mis directorios de prueba con los tuyos (separados por
|
).Como hemos cambiado los directorios, actualice la variable "directorio anterior", luego guarde el historial en memoria en HISTFILE, luego borre el historial en memoria.
Si hemos cambiado a un directorio personalizado, configure HISTFILE para que sea un
.bash_history
archivo en el directorio actual.De lo contrario, hemos cambiado de un directorio personalizado, por lo que restablece HISTFILE al stock.
Finalmente, como hemos cambiado los archivos del historial, vuelva a leer el historial anterior.
Para que todo funcione, el script establece el valor PROMPT_COMMAND y guarda dos variables de uso interno (el archivo HISTFILE y el "directorio anterior").
fuente
La respuesta de Jeff es excelente si desea el historial de un solo directorio, pero si está de acuerdo con la instalación de zsh , puede usar el directorio por historial para obtener un historial específico del directorio para todos los directorios.
Puede instalar zsh de la siguiente manera:
Alternativamente, si desea instalar oh-my-zsh , puede agregar el complemento histdb y escribir una consulta personalizada para consultar el sqlite db que agrega histdb. Escribí sobre eso y agregué autocompletados en una publicación de Dev Diaries . Consulte la sección de comandos de bonificación .
La consulta se ve así
Esto acepta un límite opcional también:
por ejemplo.
fuente
Cuando necesito usar un comando con argumentos largos varias veces, generalmente creo un alias en mi
~/.bash_aliases
o puedes ponerlo en tu~/.bashrc
si lo prefieres. Es fácil y ahorra tiempo, en lugar de buscar comandos antiguos en la historia.fuente