想象一下您刚刚运行了十几个命令。说...
$ cd foo/ # history cmd #10000 (my history is very long)
$ ... more commands ...
$ cd ../ # history cmd #10012
!-12 && !-11 && !-10 && (and so on) && !!
我知道如果它们碰巧有的话我可以重新运行它们只是已经运行(不太可能)或!10000 && !10001 && !10002 && (and so on)
,但是有没有比用感叹号和&符号手动键入每个历史数字更简单的方法?
bash 中是否有某种我不知道的范围?
例如!{10000-10012}
# 像这样的东西,只能工作。
答案1
这就是fc
命令是为了。对于最后 12 个命令:
fc -12 -1
或者对于编号为 #10000 到 #10012 的命令
fc 10000 10012
这并不完全是您想要的,因为它会首先启动一个编辑器,但这可能是一件好事,因为它让您有机会仔细检查您是否拥有正确的命令,甚至使用您喜欢的编辑器的所有功能来编辑它们。保存更改并退出编辑器后,命令将依次运行。