开发者社区> 科技小能手> 正文

老男孩教育每日一题-第71天—基础命令知识:如何做一个linux版本的回收站

简介:
+关注继续查看

题目

如何让linux也像windows那样有一个回收站,避免数据的误删除,进而恢复误删数据?

参考答案:

rm是Linux下文件删除的命令,它是linux下非常强大却又非常危险的一条命令,特别是rm -rf有时候强大到让你欲哭无泪,
当你想清除当前目录下的所有文件和目录时,很简单 #rm -rf ./ 这没什么,但是,但是如果不小心打成这样 #rm -rf / 兄弟请节哀吧!
总之rm太危险了,特别是带有-rf参数时一定要慎之又慎,但老虎也有打盹的时候啊,所以为什么不给rm一剂后悔药呢!
利用windows回收站的思路,就是给rm命令创造出了一剂后悔药?

#!/bin/bash
mkdir -p /.trash           #创建一个目录作为回收站,这里使用的是用户家目录下的.trash目录
alias rm=trash             #命令别名 rm改变为trash,通过将rm命令别名值trash来实现把rm改造成删除文件至回收站
alias r=trash
alias rl=’ls ~/.trash’   # rl命令显示回收站中的文件
alias ur=undelfile         # ur命令找回回收站中的文件
undelfile(){
    mv -i ~/.trash/\$@ ./
}

说明:这个函数的作用是找回回收站下的文件

trash(){
   mv $@ ~/.trash/
  }

说明:这个函数是将指定的文件移动到指定的目录下,通过将rm命令别名值trash来实现把rm改造成删除文件至回收站

cleartrash(){
   read -p “clear sure?[n]” confirm
   [$confirm == 'y' ] || [ $confirm == 'Y' ] && /bin/rm -rf ~/.trash/*
  }

说明:这个函数的作用是清空回收站目录下的所有文件

这段代码定义了三个函数trash、undelfile和cleartrash。
trash的作用是移动文件到指定的回收站目录;
undelfile的作用是找回回收站目录中的指定文件;
cleartrash的作用是清空回收站目录。
经rm命令别名为trash来实现rm命令的改造!

下面是我修改后的代码,直接在用户家目录下创建。
trash目录作为回收站,将其它代码加入用户家目录下的.bashrc文件下,这样用户每次登录这段代码就会自动生效!
登录后在bash下执行一遍下面的命令就可以把rm命令改造成删除文件到回收站了!

最终脚本

mkdir -p ~/.trash
cat >> .bashrc <<EOF
alias rm=trash
alias rl='ls ~/.trash'
alias ur=undelfile
undelfile()
{
  mv -i ~/.trash/ \$@ ./
}

trash()
{
  mv\$@ ~/.trash/
}

cleartrash()
{
   read -p "clear sure?[n]" confirm
    [\$confirm == 'y' ] || [ \$confirm == 'Y' ] && /bin/rm -rf ~/.trash/*
}
EOF

备注

今天是每日一题陪伴大家的第71天,期待你的进步。
对于题目和答案的任何疑问,请在博客评论区留言。
往期题目索引
http://lidao.blog.51cto.com/3388056/1914205



本文转自 李导 51CTO博客,原文链接:http://blog.51cto.com/lidao/1936562

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Linux搭建docker对服务器版本有要求吗?
Linux搭建docker对服务器版本有要求吗?
18 0
2023 | 10个最佳的Linux发行版本
Linux操作系统是一款强大且流行的开源系统。自创建至今它已经存在了30多年。虽然它最初是一个类unix系统,但是现在已经发展成许多不同的风格或发行版。 每个发行版都提供独特的功能和好处,使其成为特定用户的最佳选择。因此,无论您是在寻找用户友好性、安全性、轻量级的特性,还是其他特性,都有适合您的Linux发行版。 以下是精选的顶级Linux发行版,包含了每个Linux发行版的优点和主要特性的描述。其中包括开源版本,也有付费版本供大家参考。
118 0
利用工具合并CDN日志操作——Linux版本
利用工具合并CDN日志操作——Linux版本自制脑图
13 0
Linux:查看服务器信息,CPU、内存、系统版本、内核版本等
Linux:查看服务器信息,CPU、内存、系统版本、内核版本等
140 0
linux各个版本内核源代码下载
linux各个版本内核源代码下载
37 0
LINUX编译ARM64/AARCH64版本的jogamp(gluegen/jogl)注意事项
LINUX编译ARM64/AARCH64版本的jogamp(gluegen/jogl)注意事项
15 0
全网首发:LINUX OpenCV编译java/jar版本注意事项
全网首发:LINUX OpenCV编译java/jar版本注意事项
76 0
LINUX安装依赖库冲突的最终版本:下列软件包有未满足的依赖关系/但是它将不会被安装/无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系
LINUX安装依赖库冲突的最终版本:下列软件包有未满足的依赖关系/但是它将不会被安装/无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系
128 0
LINUX查询版本情况
LINUX查询版本情况
22 0
Alibaba Cloud Linux 3安装Wordpress以及更换wordpress版本
Alibaba Cloud Linux 3安装Wordpress以及更换wordpress版本
254 0
+关注
科技小能手
文章
问答
视频
文章排行榜
最热
最新
相关电子书
更多
Decian GNU/Linux安全合规之路
立即下载
从 Linux 系统内核层面来解决实际问题的实战经验
立即下载
冬季实战营第二期:Linux操作系统实战入门
立即下载