1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > Linux命令行实现回收站功能

Linux命令行实现回收站功能

时间:2020-11-26 13:29:18

相关推荐

Linux命令行实现回收站功能

Linux命令行实现回收站功能

rm -rf 是一个极其危险的操作,而且Linux端不像windows,有回收站的的后悔药可以吃。

所以一旦误操作,就有可能造成不可挽回的后果。

1、创建回收站文件夹

创建一个路径来作为我们的回收站:cd ~ && mkdir .trash #/root/.trash路径,即作为我们的回收站路径

当然,这里要注意你分区空间的情况,这个回收站位置,生产环境尽量放在空间较大的分区下。

如果,只是自己玩玩,可以随便放。

2、重新一下rm命令

在.bashrc中重写删除命令的代码

赋予最高权限:chmod 777 .trash修改你的 home 目录下的:.bashrc:vim ~/.bashrc

3、重写rm完整脚本

# rm transformfunction rm() {# 定期清理回收站,时间可调整now=$(date +%s)for s in $(ls --indicator-style=none $HOME/.trash/) ;dodir_name=${s//_/-}dir_time=$(date +%s -d $dir_name)# if big than one month then deleteif [[ 0 -eq dir_time || $(($now - $dir_time)) -gt 2592000 ]] ;thenecho "Trash " $dir_name " has Gone "/bin/rm $s -rffidone# 重写rm命令,将文件mv到回收站下prefix=$(date +%Y_%m_%d)hour=$(date +%H)mkdir -p $HOME/.trash/$prefix/$hourif [[ -z $1 ]] ;thenecho 'Missing Args'returnfiecho "哈喽, 靓仔 " ${!#} "已被移到回收站了呢~"mv ${!#} $HOME/.trash/$prefix/$hour}

4、立即生效

source ~/.bashrc#使配置文件立即生效,最后 我们来做一下测试

5、测试删除

#创建测试文件[root@mail ~]# touch test.txt#使用rm -rf 删除该文件[root@mail ~]# rm -rf test.txt Hi, 小姐姐 test.txt 已被移到回收站了呢~#创建测试文件[root@mail ~]# touch aaa.txt#使用rm 删除该文件[root@mail ~]# rm aaa.txt Hi, Trashing aaa.txt to /root/.trash#查看一下回收站里的文件,已经被成功移过来了[root@mail ~]# ll /root/.trash/_07_17/17/total 0-rw-r--r-- 1 root root 0 Jul 17 17:16 222-rw-r--r-- 1 root root 0 Jul 17 17:36 aaa.txt-rw-r--r-- 1 root root 0 Jul 17 17:14 eeee-rw-r--r-- 1 root root 0 Jul 17 17:36 test.txt

现在我们删除一个测试文件:

rm a.txt 或者 rm -rf aaa.txt

会显示:哈喽, 靓仔 aaa.txt 已被移到回收站了呢~

6、回收站定期删除

因为我们上面的 shell 每次触发 rm 命令的时候都会去删除一个月前的目录,

所以就不需要定时器来删除 .trash 里面的文件了。

当然,你也可以不用定期删除。

选择手动去清空回收站

7、真实删除命令在哪呢?

如果强制清空"回收站"(即清空 .trash 目录),可以使用真正的 rm 命令:/bin/rm -rf ~/.trash/*

————————————————

版权声明:本文为CSDN博主「lexsaints」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:/weixin_42350212/article/details/115628436

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。