По моему опыту, то, что вы хотите сделать, на самом деле не нужно, так как a) fish запоминает только самый последний экземпляр команды и b) в целом действительно хорошо использует доступный контекст, чтобы обеспечить наиболее подходящую запись из история команд и c) уже обрезает старые записи, когда количество сохраненных команд достигает предела.
Но, предполагая, что вы сохранили предпочитаемое подмножество истории в ~/.local/share/fish/fish_history.save
:
builtin history clear
cp ~/.local/share/fish/fish_history.save ~/.local/share/fish/fish_history
history merge
* * * * * * * * * * * * * * * * * * * * * * * * * * * * builtin
в первую очередь состоит в том, чтобы избегать запроса, действительно ли вы хотите очистить свою историю. Обратите внимание, что ваша сохраненная история должна быть действительной YAML. Это текстовый файл, но он немного сложнее, чем просто каждая команда в отдельной строке.