Shell替换上一条命令中的字符串
今天学到了一个shell技巧:替换上一条执行过的命令中的字符串。
示例如下
~/tmp$ ls d.cpio
d.cpio
~/tmp$ ^cpio^tar
ls d.tar
d.tar
解释一下:
- 首先执行
ls d.cpio
- 然后输入
^cpio^tar
把ls d.cpio
中的cpio替换成tar,然后执行替换后的命令。
上面的命令只能替换第一次出现的字符串,如果想替换所有的字符串,则需要使用如下命令:
➜ ~ $ ls d.cpio c.cpio
➜ ~ $ !!:gs/cpio/tar
➜ ~ $ ls d.tar c.tar
➜ ~ $
