「 Linux 是否设有回收站?」

一、Linux的回收站简介

回收站是用于暂时存放被删除文件的一种机制,它可以让用户在不小心删除文件后,还有机会把文件恢复到原来的位置。很多操作系统都有回收站,Windows、Mac OS等都是。那么,Linux系统中是否设有回收站呢?这是许多初学者首先要知道的问题。

二、Linux是否有官方回收站

2.1 Linux回收站原理

在 Windows 中,删除文件只是让文件标记为“可被覆盖”,文件并没有真正地从磁盘上删除。而在 Linux 中,删除文件是从磁盘上直接移除,文件系统没有什么能够追踪已经删除文件的结构。因此,在 Linux 系统下建立回收站的难度较之於 Windows 操作系统大。

2.2 环境变量实现回收站

由于Linux本身并不支持垃圾桶,因此很多Linux系统都是通过环境变量来实现类似回收站的功能。当用户在Linux中删除文件时,文件并没有真正删除,而是被移动到 /home/user/.local/share/Trash 目录下。

 $ echo $XDG_DATA_HOME

/home/username/.local/share

$ ls .local/share/Trash

files info

如上代码,当我们在linux中test目录下删除文件a.txt时,会将该文件移动到home目录对应的Trash目录下。

 $ cd test

$ rm a.txt

$ ls ~/.local/share/Trash

files info

如上代码,我们查看home目录对应的Trash文件夹则可以找到刚才删除的文件。files目录下存放的是所有被删除的文件,而info目录下存放的是文件删除的相关信息。

三、第三方回收站软件

安装第三方回收站软件,即可在Linux系统下实现类似Windows的回收站功能。例如:Trash-cli、rmtrash等。

3.1 Trash-cli

Trash-cli 是使用Python编写的第三方命令,可以在控制台使用。

 $ apt-get install trash-cli 

安装 Trash-cli 后,就可以运行 trash-put 获得类似Windows回收站的功能。

 $ trash-put test.txt 

如上代码,这样我们就把文件放入了类似Windows回收站的Trash中。要使用 trash-restore 恢复文件,或者使用 trash-empty 清空回收站中的所有文件。

3.2 rmtrash

rmtrash 是一种sh脚本,可以将文件放入垃圾箱而不是直接删除文件。

 $ sudo wget -O /usr/local/bin/rmtrash https://raw.githubusercontent.com/Make-School-Labs/rmtrash/master/rmtrash 

然后赋予执行权限:

 $ sudo chmod +x /usr/local/bin/rmtrash 

现在,我们就可以开始删除文件并放入垃圾箱了!

 $ rmtrash file.txt 

然后,我们可以在垃圾箱中找到删除的文件:

 $ ls  ~/.trash    

四、小结

尽管linux本身不支持垃圾桶功能,但我们可以通过 Linux 环境变量或第三方软件实现该功能。通过这篇文章,我们可以了解到Linux的回收站是这样一种实现方式,Linux的专业性和严谨性使得回收站功能十分实用,反而可能对用户产生更大的帮助。

操作系统标签