touch
может использовать метку времени файла с помощью -r
опция. Вы могли бы хотеть произвести в другой файл (я принимаю ниже этого -if
входной файл и -of
выходной файл),
for f in ...; do
sudo /opt/ABBYYOCR9/abbyyocr9 ... -if $f ... -of $f.new
touch -r $f $f.new
mv $f.new $f
done
Да. Можно скопировать старый файл истории в новую установку. Можно также объединить его со старым / новый.
HISTTIMEFORMAT
установите файл истории, только содержит команды.Если это установлено существует метка времени, которой предшествует хеш для каждой команды:
#1122334455
command1
#1122334459
command2
Обратите внимание однако на это, если Вы выходите, например:
$ echo 'foo
> bar
> baz' >> some_file
Это будет сохраненным как:
#1122334459
echo 'foo
bar
baz' >> some_file
Но history
движение должно показать:
4 CMD_TIME echo 'foo
5 CUR_TIME bar
6 CUR_TIME baz' >> some_file
Команды как:
$ foo | \
bar | \
baz
сохраняются как тот, если Вы устанавливаете shopt -s cmdhist
.
Я использую различный, но часто что-то как:
HISTSIZE=500000
HISTFILESIZE=500000
# Ignore dupes and space commands
HISTCONTROL=ignoreboth
# Save and show timestamps
HISTTIMEFORMAT='%F %T '
# append to the history file, don't overwrite it
shopt -s histappend
# Save and reload the history after each command finishes
# This one I have a function to turn on/off. Effect is that commands are
# accessible in all terminals after execution.
export PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND"
shopt
. (Используйте $ shopt
показать текущие настройки.)history
.Я также регулярно создаю резервную копию файлов истории и имею некоторые сценарии и псевдонимы к истории поиска – даже много лет назад вовремя. Иногда я вспоминаю, что сделал что-то подобное тому, что я в настоящее время делаю 1.5 года назад и могу быстро искать в истории.
Что касается меток времени я использую два варианта. history
шоу с метками времени и другое шоу без путем временной установки HISTTIMEFORMAT
к "".
Если метка времени отсутствует, текущее время (приблизительно) используется. Если метки времени являются настоящей историей, отсортирован по временам.
Таким образом:
.bash_history
(Упрощенные метки времени)
#timestamp 000012
some command
#timestamp 000002
some other command
$ history
1 13 aug 2013 10:44 some other command
2 13 aug 2013 12:13 some command
Однако разумно полагать, что отсортированный файл истории является более эффективным (удар не должен делать никакой перестановки).
Что касается поиска Ctrl-R часто полезен. Поскольку другие вещи смотрят на, например, Команды Для Управления Историей, Указателями События, Некоторыми Разными Командами и т.д.
Я думаю, что можно переместить файл без проблемы, или добавлять также.
для добавьте:
cd ~
mv .bash_history .bash_history_new
cp /mnt/oldfs/home/olduser/.bash_history ~/
cat .bash_history_new >> .bash_history
если Вы получили какую-либо проблему, можно отменить это:
mv .bash_history_new .bash_history
Мой .bash_history
обычно просто символьная ссылка на /dev/null
(т.е., моя история никогда не сохраняется на диске). Следовательно, когда я запускаю оболочку, нет никакой истории к доступу. Однако история действительно накапливается, означая, что удар делает это в памяти, не в файле истории.Действительно? man bash
говорит (в соответствии с ИСТОРИЕЙ):
На запуске история инициализируется из файла, названного переменным HISTFILE (значение по умолчанию ~/.bash_history). [...], Когда файл истории читается, строки, начинающиеся с символа комментария истории, сопровождаемого сразу цифрой, интерпретируются как метки времени для предыдущей строки истории. Эти метки времени являются дополнительно скидкой ‐ играемый в зависимости от значения переменной HISTTIMEFORMAT. Когда интерактивная оболочка выходит, последние строки $HISTSIZE копируются от списка предыстории до $HISTFILE.
Я оставил бит о метках времени в том, потому что это помогает объяснить формат файла истории при рассмотрении его (это - список простого текста). Основной момент здесь - то, что файл истории только используется, когда оболочка сначала запускается, и с другой стороны когда это выходит (для добавления новейшей истории).
Так как формат является просто списком команд, вкрапленных метками времени, и удар будет хорошо работать, даже если файл ничего не будет содержать (такой как со ссылкой/dev/null), то я не могу предположить там быть любыми негативными последствиями импорта того. Вы могли, вероятно, даже вручную добавить материал в него, опустив метки времени - по крайней мере, Вы могли попробовать его. Если оболочка завинчивает, просто выйдите и восстановите старую историю.
Необходимо также смочь использовать несколько историй в нескольких целях, если Вы хотите путем свопинга файлов или экспорта $HISTFILE
перед запуском оболочки. Если Вы устанавливаете их только для чтения (или возможно сброс $HISTFILE
впоследствии? Это зависит от того, проверяет ли оболочка, что переменная в конце, или использует начальное значение), затем они не будут добавлены к тому, когда оболочка выйдет также.