Недавно я отвечал на очень похожий вопрос, заданный в Ask. Убунту :https://askubuntu.com/questions/1175757/how-can-i-save-a-part-of-command-lines-into-a-new-file-using-history-command/1175763#1175763
Необходимо использовать -a
вместе с именем файла. Как поясняется вhelp history
:
history: history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]
(...)
-a append history lines from this session to the history file
И далее:
If FILENAME is given, it is used as the history file. Otherwise, if $HISTFILE has a value, that is used, else ~/.bash_history.
Например, запустите новый сеанс и введите это($
— это приглашение, скорее всего, в вашей системе оно будет другим):
$ echo a-new-session started at $(date)
$ history -a /tmp/new-history
В этом случае /tmp/new-history
будет:
echo a-new-session started at $(date)
history -a /tmp/new-history
Предполагая пару разумных вещей (есть оболочка и программа ls, а точка входа для контейнера не очень жестко заблокирована)
docker exec c7033ac0fdd2 ls /home/mydir
Что касается «почему?», существует ограничение на то, сколько должно быть встроено в докер и сколько вы должны делать с внешними программами.
Если предположения неверны, вы можете экспортировать содержимое контейнера в виде tar-файла и посмотреть на него, например.
docker container export c7033ac0fdd2 | tar vtf - | grep /home/mydir