zoukankan      html  css  js  c++  java
  • 用 !$ 防止误操作

    shell 的通配符匹配非常强大,不过也非常危险,不少同学都碰到这样的问题,比如 rm a*,结果一个手抖,a 和星号之间多了个空格,结果目录下的文件都灰飞烟灭了……

    bash 支持一个特殊的变量 !$,永远保存着前一条命令的最后一个参数,例如:

    $ echo hello world
    hello world
    $ echo !$
    world

    那么,这和防止误操作有什么关系呢?

    比如你要删除以 a 打头的文件,可以先通过 ls 确定一下:

    $ ls a*
    a1.txt  a2.txt  a3.txt  a4.txt

    如果确认无误,之后只要:

    rm  !$

    !$ 自动替换为上个命令的 a*,就可以把这些文件干掉了~  不会再出现手抖打错的情况了,如果通配符确实出了问题,第一步 ls 就可以发现  

    还可以通过快捷键 Esc +  .  快速输入上个命令的最后一个参数,免去了输入 !$ 的麻烦 ~ ( 多谢 druggo 补充 :)


    如果你想一次删除多个项目,还可以使用 !* ( 多谢 qt 补充 : )。

    !* 保存着上一条命令的所有参数,例如:

    $ ls a* b*
    a1.txt  a2.txt  b1.txt  b2.txt

    确认无误后,通过 !* 来删除:

    rm  !*

    限制就是前面的 ls 命令,不能带有参数,否则参数也会传给 rm。

  • 相关阅读:
    linux下tomcat权限的问题
    树莓派安装Tomcat服务器
    Javascript基础——Object对象和Object原型对象
    electron
    ES6-21:编程风格、ECMAScript规格
    番外篇01:angularJS最佳实战
    ES6-18:class类及其继承
    ES6-10:Promise
    ES6-09:新增API—Proxy、Reflect
    ES6-08:新增数据结构—Set、WeakSet、Map、weakMap
  • 原文地址:https://www.cnblogs.com/beta2013/p/3377399.html
Copyright © 2011-2022 走看看