
shell 的通配符匹配非常强大,不过也非常危险,不少同学都碰到这样的问题,比如 rm a*,结果一个手抖,a 和星号之间多了个空格,结果目录下的文件都灰飞烟灭了……
bash 支持一个特殊的变量 !$,永远保存着前一条命令的最后一个参数,例如:
那么,这和防止误操作有什么关系呢?
比如你要删除以 a 打头的文件,可以先通过 ls 确定一下:
如果确认无误,之后只要:
!$ 自动替换为上个命令的 a*,就可以把这些文件干掉了~ 不会再出现手抖打错的情况了,如果通配符确实出了问题,第一步 ls 就可以发现
。
还可以通过快捷键 Esc + . 快速输入上个命令的最后一个参数,免去了输入 !$ 的麻烦 ~ ( 多谢 druggo 补充 :)
如果你想一次删除多个项目,还可以使用 !* ( 多谢 qt 补充 : )。
!* 保存着上一条命令的所有参数,例如:
确认无误后,通过 !* 来删除:
限制就是前面的 ls 命令,不能带有参数,否则参数也会传给 rm。
评论 (6)
is-Programmer 是一个面向 Linux 爱好者与程序员的 Blog 系统,具有简洁的风格,方便的代码高亮和数学公式插入功能,适合撰写学习笔记和技术文档。
© is-Programmer.com All rights reserved. | Power by Chito 1.1.4 | 沪ICP备07005989号
2008年10月26日 17:41
!*岂不更佳
2008年10月26日 19:08
@qt: 多谢补充~ 加上去了
2008年10月26日 23:50
上个命令的最后一个参数,还可以按ESC+.号,速度飞快!
2008年10月27日 05:30
@druggo: 这招无影手爽啊~ 补充上去了~ : D
2008年10月28日 13:44
不错!
2009年3月28日 10:51
@druggo: or Alt + .