2015-12-08 4 views
0

Мои ~/.zsh_history шоу:Какой формат файлов истории оболочки

: 1449561637:0;echo "foobar" 

Я предполагаю, что это идет unix timestamp:exit code;command но что о пространстве до метки времени и первого двоеточия?

Есть ли официальная спецификация?

+0

Обратите внимание: bash имеет другой формат. Он имеет только команды, которые вы запускаете. – alnet

+0

Я считаю, что официальной спецификации нет. Это недокументировано, но это довольно легко понять. – 4ae1e1

+1

@alnet Вы можете установить 'HISTTIMEFORMAT' в' bash', чтобы пометить каждую запись меткой времени. – chepner

ответ

1

Как уже отмечалось в комментариях, формат файла истории зависит от оболочки, а иногда и от конкретных настроек оболочки.

В вашем случае вы используете zsh с включенной опцией EXTENDED_HISTORY (либо путем ее явной установки, либо с помощью csh). Согласно ZSH manual формату записи истории с EXTENDED_HISTORY выглядит следующим образом:

: <beginning time>:<elapsed seconds>;<command> 

Так пространство перед временной меткой является лишь частью формата и число между вторым двоеточием точка с запятой на самом деле время, затраченным команда, а не код выхода.

Примечание: <elapsed seconds> всегда будут 0, если опция INC_APPEND_HISTORY установлена, потому что тогда запись истории пишутся в файл сразу после ввода команды. Если вы хотите зарегистрировать продолжительность и продолжить обмен историей между сеансами оболочки, вместо этого вы можете использовать INC_APPEND_HISTORY_TIME. Это записывается в файл истории только после завершения команды.

 Смежные вопросы

  • Нет связанных вопросов^_^