美文网首页
alias 自定义参数——实现一个删除备份的指令

alias 自定义参数——实现一个删除备份的指令

作者: code_solve | 来源:发表于2019-04-09 10:54 被阅读0次

    前言

    这是一个简单的 shell 指令 alias 的简单使用
    有了它,你可以简化很多日常中常用的指令的输入

    什么是 alias

    顾名思义,就是别名的意思。
    在shell 当中,我们可以给一个命令取一个别名 alias,当我们要调用这个命令的时候,就可以通过alias 进行调用了。当然,也许你会说,这有卵用啊。。。还不如直接用呢?但是有时候可能还是会有用的。。。

    使用

    1. 查看别名
    • alias -p
      alias.jpg
    1. 创建别名
      alias key=[name]
      alias test_name='echo'
      alias -p
      可以看到如下列表,其中有一项 alias test_name='echo'

      alias l.='ls -d .* --color=auto'
      alias ll='ls -l --color=auto'
      alias ls='ls --color=auto'
      alias print='echo && echo aaa'
      alias rm='delete_and_back_file'
      alias test_name='echo' ##重点
      
    2. 使用别名
      test_name hello
      可以发现 test_name 具有了和 echo 命令一样功能

      hello
      
    3. 取消别名
      unalias test_name
      alias -p

    这个命令有什么用

    1. 预设参数
      系统内置的别名 alias ls='ls --color=auto'
      当我们使用 ls 的时候,通常可以发现,目录 和 文件是不同的颜色的,其实普通的 ls 默认是没有颜色的
      你可以取消别名后试试 或者直接使用 \ls ,其中 \ 是转义,即不使用别名

    所以第一个作用就是对于一些命令的常用参数进行预设,可以简化指令,同时,当你自己指定参数的时候,是会覆盖别名的预设参数的,比如 ls --color=none就可以取消 颜色 的显示

    1. 自定义一些复杂的指令
      平时我们也许会用到多个命令的组合,这个时候也可以使用 别名。
      比如我们平时删除文件 rm -rf 很容易造成一些不可逆转的后果,这个时候我们可以自定义一个 别名,让他帮我们完成备份并删除的功能。
      但是,别名是不支持一些复杂逻辑的,所以需要另外想一个办法来实现,通常我们可以自定义一个函数,再将别名指向这个函数来完成这些操作,比如传参,命令组合什么的,下面就是一个 备份删除的列子

      function delete_and_back_file(){
      
          date=`date +%Y%m%d`
          path=`pwd $1`
          o_path=~/backup/$date/$path
          mkdir -p ${o_path}/
          mv $path/$1 ${o_path}/$1
        }
      
      alias rm='delete_and_back_file'
      

      我们把该段代码复制到 ~/,bashrc文件里面,然后source~/,bashrc再直接调用rm指令就可以删除文件了,并且可以在~/backup/找到删除的文件,实际上我们也可以发现,这个rm别名做的只是简单的将删除的文件移到了~/backup/`文件夹下对应的目录,所以我们可能还需要一个定时任务来定时删除不要的文件。

      对于简单的函数,也可以这样 alias t_alias='test(){ echo $1;};test' 就完成了一个 别名的定义

    相关文章

      网友评论

          本文标题:alias 自定义参数——实现一个删除备份的指令

          本文链接:https://www.haomeiwen.com/subject/uorpiqtx.html