老男孩教育每日一题-第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

相关文章
|
3天前
|
SQL 缓存 监控
|
3天前
|
前端开发 Linux Shell
|
3天前
|
Linux
Linux系统ps命令
这些是一些常见的 `ps`命令选项和用法,用于查看系统中运行的进程及其相关信息。您可以根据需要选择合适的选项以满足您的任务要求。
11 0
|
3天前
|
存储 Linux Shell
linux课程第二课------命令的简单的介绍2
linux课程第二课------命令的简单的介绍2
|
3天前
|
Linux C语言 数据安全/隐私保护
linux课程第二课------命令的简单的介绍3
linux课程第二课------命令的简单的介绍3
|
3天前
|
监控 Unix Linux
如何使用 Linux less 命令?
【4月更文挑战第25天】
13 1
如何使用 Linux less 命令?
|
3天前
|
JSON 网络协议 Linux
Linux ip命令:网络的瑞士军刀
【4月更文挑战第25天】
9 1
|
3天前
|
安全 Linux C语言
linux课程第一课------命令的简单的介绍
linux课程第一课------命令的简单的介绍
|
3天前
|
网络协议 Linux Shell
|
3天前
|
NoSQL Linux Shell
2.Docker常用命令(linux)
2.Docker常用命令(linux)