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

    文章

    10992

    浏览量

    206744
  • 操作系统
    +关注

    关注

    37

    文章

    6290

    浏览量

    121901
  • 源代码
    +关注

    关注

    95

    文章

    2929

    浏览量

    66064
收藏 人收藏

    评论

    相关推荐

    基于Linux操作系统和红外发射器实现系统模块的设计

    、运行高效、源码开放,并且Linux是免费的操作系统,再加上其良好的可移植性等技术优势,使其已经成为嵌入式操作系统的主流。
    的头像 发表于 09-17 16:20 3227次阅读
    基于<b class='flag-5'>Linux</b><b class='flag-5'>操作系统</b>和红外发射器<b class='flag-5'>实现</b><b class='flag-5'>系统</b>模块的设计

    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

    《Visual C# 2008程序设计经典案例设计与实现》---动态删除文件及清空回收站

    《Visual C# 2008程序设计经典案例设计与实现》---动态删除文件及清空回收站.zip
    发表于 06-25 16:47

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

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

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

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

    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次下载

    linux上模拟uCOS-II实时操作系统实现

    本文主要提供了一种可行的,把在windows 系统实现的uCOS-II 操作系统移植到linux 操作系统上的
    发表于 08-13 11:41 32次下载

    什么是Linux操作系统

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

    电脑回收站使用大全

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

    FreeRTOS操作系统源码V3.2

    FreeRTOS操作系统源码V3.2
    发表于 03-26 15:24 94次下载

    源码-清空回收站

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

    linux属于什么操作系统

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