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

相关文章
|
11天前
|
NoSQL Linux Shell
常用的 Linux 命令
常用的 Linux 命令
33 9
|
2天前
|
机器学习/深度学习 缓存 监控
linux查看CPU、内存、网络、磁盘IO命令
`Linux`系统中,使用`top`命令查看CPU状态,要查看CPU详细信息,可利用`cat /proc/cpuinfo`相关命令。`free`命令用于查看内存使用情况。网络相关命令包括`ifconfig`(查看网卡状态)、`ifdown/ifup`(禁用/启用网卡)、`netstat`(列出网络连接,如`-tuln`组合)以及`nslookup`、`ping`、`telnet`、`traceroute`等。磁盘IO方面,`iostat`(如`-k -p ALL`)显示磁盘IO统计,`iotop`(如`-o -d 1`)则用于查看磁盘IO瓶颈。
|
2天前
|
Linux Perl
Linux系统替换字符串常用命令
请注意,`sed`命令可以非常强大,可以根据不同的需求使用不同的选项和正则表达式来进行更复杂的字符串替换操作。
16 0
|
5天前
|
安全 Linux 开发工具
Linux中可引起文件时间戳改变的相关命令
【4月更文挑战第12天】Linux中可引起文件时间戳改变的相关命令
11 0
|
6天前
|
域名解析 网络协议 Linux
Linux 中的 Nslookup 命令怎么使用?
【4月更文挑战第12天】
25 6
Linux 中的 Nslookup 命令怎么使用?
|
7天前
|
运维 网络协议 Unix
18.系统知识-Linux常用命令
18.系统知识-Linux常用命令
|
7天前
|
网络协议 Ubuntu Linux
Linux 下 TFTP 服务搭建及 U-Boot 中使用 tftp 命令实现文件下载
Linux 下 TFTP 服务搭建及 U-Boot 中使用 tftp 命令实现文件下载
|
8天前
|
Linux Go
Linux命令Top 100驱动人生! 面试必备
探索Linux命令不再迷茫!本文分10部分详解20个基础命令,带你由浅入深掌握文件、目录管理和文本处理。 [1]: <https://cloud.tencent.com/developer/article/2396114> [2]: <https://pan.quark.cn/s/865a0bbd5720> [3]: <https://yv4kfv1n3j.feishu.cn/docx/MRyxdaqz8ow5RjxyL1ucrvOYnnH>
58 0
|
10天前
|
缓存 运维 监控
Linux系统监控利器:探索常用命令及数据保存技巧
Linux系统监控利器:探索常用命令及数据保存技巧
29 4
Linux系统监控利器:探索常用命令及数据保存技巧
|
13天前
|
Linux 索引
linux 文件查找 和文件管理常用命令
linux 文件查找 和文件管理常用命令
21 0