今天学到了一个shell技巧:替换上一条执行过的命令中的字符串

示例如下

~/tmp$ ls d.cpio
d.cpio
~/tmp$ ^cpio^tar
ls d.tar
d.tar

解释一下:

  • 首先执行ls d.cpio
  • 然后输入^cpio^tarls d.cpio中的cpio替换成tar,然后执行替换后的命令。

上面的命令只能替换第一次出现的字符串,如果想替换所有的字符串,则需要使用如下命令:

➜ ~  $ ls d.cpio c.cpio
➜ ~  $ !!:gs/cpio/tar
➜ ~  $ ls d.tar c.tar
➜ ~  $

知识共享许可协议本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可。