0
A
回答
2
ksh93
从未支持一个选项,以改写历史。
某些shell只在退出时或根据请求写入其历史文件。 ksh93
在每个命令后写入,这会产生大量的同步I/O。
在某些环境中(例如NFS),这可能会影响交互式体验,导致shell在每个命令之后等待。
+0
已确认。 'zsh'虽然有几个关于历史数据的选项,并且有一个'ksh'兼容模式,但是由于我自己不使用'zsh',所以我无法评论它的真正兼容性。 –
+0
好的。那么我会写我的脚本。谢谢。 :) –
1
我不是一个KSH BUFF,所以真的不能告诉,如果有一个shell选项忽略历史的重复。无论如何,你可以随时修剪重复,像这样一个小perl脚本:
#!/usr/bin/env perl
my $history = ".history";
open (HIST, '<', $history) or die "cannot read $history: $!";
my @oldhist = <HIST>;
close HIST;
my @newhist =();
my %seen =();
while (my $cmd = pop @oldhist) {
next if defined $seen{$cmd};
++$seen{$cmd};
unshift @newhist, $cmd;
}
open (HIST, '>', $history) or die "cannot write $history: $!";
print HIST @newhist;
close HIST;
这原来
A
B
C
D
C
到
A
B
D
C
相关问题
- 1. TFS删除文件的历史记录
- 2. 从Git历史记录中删除具有历史记录的特定文件
- 3. 在SVN中恢复删除文件的历史记录
- 4. 在git中恢复已删除的历史记录文件
- 5. 从git历史记录中删除已删除的文件
- 6. 重写历史记录以删除重复的提交消息
- 7. Git从历史记录中删除重复的提交
- 8. 如何删除已恢复文件的历史记录? (p4v)
- 9. git恢复删除的文件及其更改历史记录
- 10. 如何删除历史记录中的删除和重命名?
- 11. 通过Subversion中的删除/添加重命名文件重建历史记录
- 12. Git删除文件历史记录中的一步
- 13. 在TFS中删除包含历史记录的文件
- 14. 从历史记录中删除文件后的Rebase分支
- 15. 如何从mercurial的历史记录中删除大文件?
- 16. Git:从历史记录中删除替换文件的提交
- 17. 从git历史记录中删除文件的某些内容
- 18. 删除GitHub的提交历史记录?
- 19. 如何清除/删除主分支中的重复提交历史记录?
- 20. 恢复SVN历史记录已删除的目录
- 21. SVN - 删除并重新创建文件后恢复历史记录
- 22. 如何取消删除以前在git历史记录中删除的文件?
- 23. git rm是否删除文件的所有历史记录?
- 24. Git/Bitbucket - 从整个历史记录中删除文件/提交
- 25. 如何从历史记录中删除二进制文件?
- 26. 如何从java文件中删除SVN历史记录?
- 27. 从历史记录中删除文件(磁盘空间不足)
- 28. Git从历史记录中删除大文件
- 29. 从git历史记录中删除文件不起作用
- 30. 如何删除已删除的git子树文件夹的历史记录?
这是未详细说明的。你想保留第一个或最后一个重复条目? – Jens
最后一个。例如,当在历史中是:A B C D并且我运行命令C时,历史上应该是A B D C –