Я часто переключаюсь между несколькими каталогами в сеансе bash. Иногда до 4. Для каждого каталога, в котором я нахожусь, у меня часто есть эксклюзивный набор команд, который я запускаю, и этот набор может содержать от 7 до 10 команд. Мне было интересно, возможно ли создать связь между моей историей команд bash и cwd, в которой эти команды были запущены. Ценю любые предложения.
2 ответа
1
Вы можете использовать PROMPT_COMMAND
чтобы проверить $PWD
и предпринять соответствующие действия, что-то вроде этого:
PROMPT_COMMAND='if [[ $PWD =~ /usr/share ]]; then echo take action in /usr/share; fi'
1
Используйте следующее переопределение для cd
и поместите эти строки в .bashrc
:
HISTFILE=$HOME/.bash_history.`echo $PWD|sed -e 's/\//_/g'`
cd () {
history -a
command cd "$@"
HISTFILE=$HOME/.bash_history.`echo $PWD|sed -e 's/\//_/g'`
history -c
history -r
}