0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何实现Linux操作系统的回收站(附源码)

如意 来源:良许Linux 作者:良许 2020-09-07 09:44 次阅读

Linux 下 rm 命令是表示删除一个文件,而Linux是没有回收站机制,所以文件一旦删除的话,就彻底从磁盘上删除了。而很多人喜欢加上 -f 选项,是代表强制的意思,更暴力的是删除文件夹的时候使用 rm -rf 命令,这样一来,文件夹本身,以及文件夹下的子子孙孙,都一了百了了。

而万一如果你执行了 rm -rf /* 命令,那无疑效果与下面等同:

由于没有回收站机制,很多人吃过这个亏,良许也是,曾经辛苦写的几个月的代码,一个 rm 命令全部化为乌有,搞得每次执行 rm 命令的时候,手都是颤抖的……

既然Linux没有回收站,那我们能否自己实现一个?答案当然是肯定的。下面,我们就自己动手做一个回收站,给自己一个后悔的机会。

既然罪魁祸首是 rm 命令,那我们就对这个命令进行改造。在Linux下对命令进行重定义是使用 alias 命令,修改的是 .bashrc 文件,即:

vim ~/.bashrc

在文件尾部,我们添加以下几句代码:

如何实现Linux操作系统的回收站(附源码)

在这里,我们是在家目录下建立一个 .trash 的隐藏文件夹,作为回收站。然后,我们对 rm 命令进行重定义。当我们执行 rm 或者 r 的时候,将执行 trash 函数。而在 trash 函数里,只做一件事:

mv -i $@ ~/.trash/

就是将 rm 之后所有的文件移动到 .trash 目录下(即模拟丢进回收站)。-i 选项表示如果 .trash 目录有同名文件的话,将提示是否覆盖。

我们将 rl 定义为 ls ~/.trash/ ,也就是说,我们可以通过 rl 来查看 .trash 目录下的文件,即被「删除」的文件。

如果要还原文件,可以执行 ur ,而 ur 将执行 undelfile 函数。在 undelfile 里,又将 ur 之后的文件从 .trash 目录移回到原目录,从而实现文件删除还原。

当过了一段时间后,回收站里文件太多了,我们可以使用 cleartrash 命令清空回收站。它将执行同名函数,调用 /bin/rm 命令将 .trash 目录清空。

.bashrc 文件修改完毕之后,我们要让它生效:

source ~/.bashrc

我们来实际体会一下:

删除文件

如何实现Linux操作系统的回收站(附源码)

查看回收站文件

如何实现Linux操作系统的回收站(附源码)

还原被删除的文件

如何实现Linux操作系统的回收站(附源码)

清空回收站

如何实现Linux操作系统的回收站(附源码)

通过以上这些步骤,我们虽然可以实现一个回收站的功能,但实际的工作中,我们还是要养成定时备份的习惯,这样即使有误操作,我们也可以将损失降到最低。
责编AJX

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    11199

    浏览量

    208691
  • 操作系统
    +关注

    关注

    37

    文章

    6672

    浏览量

    123125
  • 源代码
    +关注

    关注

    96

    文章

    2943

    浏览量

    66613
收藏 人收藏

    评论

    相关推荐

    基于Linux等不同操作系统实现异构系统的设计

    通过该设计能够确保装有不同操作系统的各种服务器能够在本系统中正常工作,同时使用消息队列实现系统模块之间的通信便于扩展系统的处理能力,能大大提
    发表于 01-16 09:17 2580次阅读

    linux操作系统交叉编译环境的建立方法

    操作系统内核源码压缩包和GNU编译工具通过ftp传送到Linux服务器的某个目录(如合法的用户目录),然后在该目录下解压,并将GNU编译工具安装到默认的工作目录即可,以上工作通过在工作
    发表于 04-16 09:22

    Win10系统回收站不见了的解决方法

    `近来有些用户在使用win10系统电脑过程中,却发现桌面上的回收站图标突然找不到了,这该怎么办呢?下面,小编就给大家介绍找回丢失的Windows10回收站的具体方法。具体方法如下:1、先看
    发表于 01-27 16:20

    Linux操作系统交叉编译环境的建立方法

    操作系统内核源码压缩包和GNU编译工具通过ftp传送到Linux服务器的某个目录(如合法的用户目录),然后在该目录下解压,并将GNU编译工具安装到默认的工作目录即可,以上工作通过在工作
    发表于 07-15 15:05

    回收站删除的文件怎么恢复

    只需要简单的几步操作,那么我们回收站里清空的文件就可以恢复了,接下来我就来告诉大家如何利用这款软件进行回收站文件恢复操作。  1、打开常用的电脑,搜索“互盾数据恢复软件”关键词,将其下
    发表于 05-28 16:53

    分享Win10操作系统设置的几个技巧

    新安装Win10操作系统有必要设置的几个技巧,希望对大家能有所帮助!1、控制面版、回收站、网络等图标放到桌面微软默认只是放了个回收站在桌面,但是控制面版、我的电脑等图标就没有放出来。但个人...
    发表于 01-10 08:12

    基于Linux操作系统的嵌入式网关的实现

    基于Linux操作系统的嵌入式网关的实现
    发表于 03-28 09:48 29次下载

    Linux操作系统

    linux的教学内容1 、Linux概述 2 、Linux操作系统安装3、 Linux的内核 4 、Li
    发表于 04-10 16:54 0次下载
    <b class='flag-5'>Linux</b><b class='flag-5'>操作系统</b>

    Linux操作系统原理及应用

    Linux操作系统原理及应用 1.1  操作系统的地位 1.2  操作系统的功能 1.3  操作系统的发
    发表于 04-28 14:53 0次下载

    计算机删除的文件和回收站清空的文件,究竟到哪里去了?

    计算机删除的文件和回收站清空的文件,究竟到哪里去了? 当微软公司在Windows95中引入回收站之后,它立即成为许多用户纠正失误的有效工具。如果您删除了文件后,意识
    发表于 07-30 08:47 3889次阅读

    什么是Linux操作系统

    什么是Linux操作系统  简单地说,Linux是一套
    发表于 12-26 12:04 1403次阅读

    电脑回收站使用大全

    电脑回收站使用大全    使用Windows的用户对回收站不会陌生,它给了我们一剂“后悔药”。回收站保存了您删除的文件、文件夹、图片、
    发表于 02-23 15:08 4045次阅读

    源码-清空回收站

    易语言是一门以中文作为程序代码编程语言学习例程:易语言-源码-清空回收站
    发表于 06-06 17:43 2次下载

    趣谈Linux操作系统

    趣谈Linux操作系统
    的头像 发表于 01-13 16:00 6421次阅读

    linux属于什么操作系统

    Linux属于一种类UNIX操作系统Linux,全称GNU/Linux,是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX
    的头像 发表于 11-08 11:01 4115次阅读