重定向 rm 命令以嫁接为 mv 命令,相当于给 Linux 系统定制了一个回收站。
实现方式如下:

添加bash脚本并写入

  1. ### 重定义rm命令 ###
  2. # 定义回收站目录
  3. trash_path= '~/.trash'
  4. # 判断 $trash_path 定义的文件是否存在,如果不存在,那么就创建 $trash_path.
  5. if[ ! -d $trash_path ]; then
  6. mkdir -p $trash_path
  7. fi
  8. # 定义别名:使用 rm 就调用 trash
  9. aliasrm=trash
  10. # 使用 rl 就调用 'ls ~/.trash'
  11. # 如果更改上面的回收站目录这里的目录也需要修改
  12. aliasrl= 'ls ~/.trash'
  13. # 使用 unrm 就调用 restorefile,需要在删除目录的父目录下执行
  14. aliasunrm=restorefile
  15. # 使用 rmtrash 就调用 claearteash
  16. aliasrmtrash=cleartrash
  17. # 恢复文件的函数
  18. restorefile()
  19. {
  20. mv -i ~ /.trash/$@ ./
  21. }
  22. # 删除文件的函数
  23. trash()
  24. {
  25. mv $@ ~ /.trash/
  26. }
  27. # 清空回收站的函数
  28. cleartrash()
  29. {
  30. read -p "确定要清空回收站吗?[y/n]"confirm
  31. [ $confirm == 'y'] ||[ $confirm == 'Y'] && /bin/rm-rf ~ /.trash/*
  32. }

最后将上述脚本写入 /etc/bashrc,并立即执行命令 source /etc/bashrc 即刻生效。