博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux将rm命令设置为回收站【转】
阅读量:5742 次
发布时间:2019-06-18

本文共 1441 字,大约阅读时间需要 4 分钟。

一个方案就是重定向 rm 命令以嫁接为 mv 命令,相当于给 Linux 系统定制了一个回收站。

实现方式如下:

### 重定义rm命令 ###  # 定义回收站目录 trash_path='~/.trash'  # 判断 $trash_path 定义的文件是否存在,如果不存在,那么就创建 $trash_path. if [ ! -d $trash_path ]; then  mkdir -p $trash_path fi  # 定义别名:使用 rm 就调用 trash alias rm=trash  # 使用 rl 就调用 'ls ~/.trash' # 如果更改上面的回收站目录这里的目录也需要修改 alias rl='ls ~/.trash'  # 使用 unrm 就调用 restorefile,需要在删除目录的父目录下执行 alias unrm=restorefile  # 使用 rmtrash 就调用 claearteash alias rmtrash=cleartrash  # 恢复文件的函数 restorefile() {  mv -i ~/.trash/$@ ./ }  # 删除文件的函数 trash() {  mv $@ ~/.trash/ }  # 清空回收站的函数 cleartrash() {  read -p "确定要清空回收站吗?[y/n]" confirm  [ $confirm == 'y' ] || [ $confirm == 'Y' ] && /bin/rm -rf ~/.trash/* }

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

 

这个脚本定义了几个命令:

  • rl:查看回收站下的文件。
  • unrm 文件名或目录:恢复到当前的路径下。
  • rmtrash:清空回收站,不过会友好提示。

执行 rm 不会真正删除,而是使用 mv 移动到我们指定的回收站。实在真的想删除可以 /bin/rm 来进行删除。

另外,需要注意的是,之前 rm 指令的一些参数可能不再使用,因为 rm 现在其实是 mv 了。

使用示例:

# touch hoxistest # touch 1 # mkdir haha # ls 1 haha hoxistest # rm 1 # ls haha hoxistest  # 查看回收站文件 # rl 1 myftp1  # 恢复已删除文件 # unrm 1 [root@CESHI-CLM-10-254-4-48 test]# ls 1 haha hoxistest  # rm haha/ # rm hoxistest # rl haha hoxistest  # 情况回收站 # rmtrash 确定要清空回收站吗?[y/n]y # rl

 

效果看着应该还可以吧。

 

转自

作为一名运维侠,如何潇洒的删库跑路? https://www.toutiao.com/a6604987457572176388/?tt_from=mobile_qq&utm_campaign=client_share&timestamp=1537847280&app=news_article&utm_source=mobile_qq&iid=26112390770&utm_medium=toutiao_ios&group_id=6604987457572176388

转载地址:http://siizx.baihongyu.com/

你可能感兴趣的文章
Java判断是否为垃圾_Java GC如何判断对象是否为垃圾
查看>>
多项式前k项和java_多项式朴素贝叶斯softmax改变
查看>>
java数组只能交换0下标和n_编程练习-只用0交换排序数组
查看>>
centos7安装mysql视频教程_centos7安装mysql(完整)
查看>>
php图片赋值,php如何优雅地赋值
查看>>
【探索HTML5第二弹01】HTML5的前世今生以及来世
查看>>
Failed to connect to remote VM. Connection refused. Connection refused: connect
查看>>
freeze
查看>>
JS时间转时间戳,时间戳转时间。时间显示模式。
查看>>
SAP HANA存储过程结果视图调用
查看>>
设计模式 ( 十八 ):State状态模式 -- 行为型
查看>>
OracleLinux安装说明
查看>>
nova分析(7)—— nova-scheduler
查看>>
python Gunicorn
查看>>
Entity Framework 实体框架的形成之旅--Code First模式中使用 Fluent API 配置(6)
查看>>
Spring.net 学习笔记之ASP.NET底层架构
查看>>
I.MX6 wpa_cli 使用
查看>>
OpenMediaVault 搭建git,ssh无法连接问题
查看>>
[WPF]使用WindowChrome自定义Window Style
查看>>
java多线程之:Java中的ReentrantLock和synchronized两种锁定机制的对比 (转载)
查看>>