重新运行多个历史记录命令


22

假设您刚刚运行了十几个命令。说...

$ 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}#这样的东西,只能工作。

Answers:


23

这就是fc命令的作用。

fc -12 -1

要么

fc 10000 10012

这不是您想要的,因为它会首先启动编辑器,但这可能是一件好事,因为它使您有机会仔细检查您是否具有正确的命令,甚至可以使用喜爱的编辑器的所有功能对其进行编辑。保存更改并退出编辑器后,命令将运行。


啊哈!辉煌!fc。修复命令。说得通!
inanutshellus 2012年

1
为避免启动编辑器(危险!),您可以使用fc -e true -12 -1
BingsF '16

在ubuntu中不可用
okwap

1
@okwap,废话。它是POSIX指定的,当然可以在Ubuntu中使用。(尽管它是内置的壳,但必须要这样,所以如果您在看的/bin话就找不到它。)
通配符
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.