改造rm命令,删除文件至回收站

rm 是我们经常使用的Linux命令之一,我会习惯于使用 rm-rf 参数同时使用,将文件移除,但是这样做的话,在之后再想找回就会很麻烦。

下面我们做一些调整,将rm命令的删除改为将文件移动到回收站,方便找回。具体操作如下:

  1. 创建回收站位置

    • 如果是ubuntu系统,自带回收站的位置位于/.local/share/Trash/files/目录
    • centos系统,我们自己创建一个回收站目录mkdir ~/.trash
  2. 修改rm别名

    • ubuntu: 找到~/.bashrc文件
    • centos: 找到~/.profile文件
    • 我本人用的是ubuntu+zsh,所以需要修改~/.zsh文件
    • 在文件最后追加如下内容:

      # 修改rm命令将文件删除至回收站
      alias rm=trash
      alias rl='ls ~/.local/share/Trash/files/'
      trash(){
          del_date=`date +%Y%m%d%H%M%S`
          # 循环是因为可能rm多个文件
          for arg in "$@"
          do
             # 这里将删除时间加入到文件名后是因为mv命令不能覆盖非空目录以及不能使用文件覆盖文件夹
             # 加上时间就不会有同名的文件了
             mv $arg ~/.local/share/Trash/files/$arg-${del_date}
          done
      }
  3. source ~/.bashrc(~/.profile、~/.zsh) 使其生效
  4. 大功告成,再使用rm命令就会将文件移动到回收站了,而且不需要添加 -rf 参数
    原文作者:瓦力
    原文地址: https://segmentfault.com/a/1190000018464527
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞