从终端软删除文件
1. 简介
在这个简短的教程中,我们将学习如何在 Linux 系统中软删除文件。
当我们软删除一个文件时,我们只是将它移到垃圾桶而不是永久删除它。
2. 垃圾目录
Linux 系统中的垃圾目录位于本地文件系统中。对于标准用户,路径是:
~/.local/share/Trash/
对于 root 用户,它是:
/root/.local/share/Trash/
删除垃圾目录是安全的。如果需要,它将被重新创建。
3. Linux Trash 的工作原理
在垃圾目录中,我们可以找到另外两个目录。第一个是包含实际垃圾文件的文件目录。第二个是信息目录,其中包含一个文本文件,其中包含有关已删除文件的信息。
例如,如果我们删除*/home/blogdemo/article.txt*文件,我们将拥有:
~/.local/share/Trash/files/article.txt
~/.local/share/Trash/info/article.txt.trashinfo
files /article.txt是原始文件。info /article.txt.trashinfo包含元数据:
[Trash Info]
Path=/home/blogdemo/article.txt
DeletionDate=2020-02-14T12:09:26
上述信息用于例如恢复已删除文件的过程。
4. 使用gio删除文件
最推荐的删除文件的方法是使用*gio *库。它提供了一个虚拟文件系统的接口,并通过一个统一的 API 轻松访问本地和远程文件。
gio是*GLib * 项目的一部分,可以在大多数 Linux 发行版中默认找到。如果没有我们可以手动安装它:
$ sudo apt-get install libglib2.0-0
要使用gio删除一个文件,我们使用它的trash命令,后跟文件名:
$ gio trash article.txt
之后,我们可以列出垃圾目录中的文件:
$ gio list trash://
list类似于ls命令,所以我们需要提供一个我们想要列出的目录。在我们的例子中,本地文件系统垃圾被定义为trash:// 。
结果,我们将获得垃圾桶中所有文件的列表。在我们的例子中,它只是一个文件:
/home/blogdemo/article.txt
要清空垃圾目录,我们应该使用带有*–empty参数的trash*命令:
$ gio trash --empty
如果清空垃圾箱成功则没有输出。
5. 使用trash-cli删除文件
gio的替代品之一是*trash-cli *。
它是一个开源项目,为 KDE、GNOME 和 XFCE GUI 垃圾桶提供命令行界面。通过使用trash-cli,我们可以像在图形垃圾桶中那样删除和恢复项目。
首先,我们应该安装trash-cli:
$ sudo apt-get install trash-cli
现在,要删除一个文件,我们应该使用trash-put命令:
$ trash-put article.txt
我们还可以列出垃圾桶的内容:
$ trash-list
输出将包含所有带垃圾日期和完整路径的垃圾文件:
2020-02-24 17:19:07 /home/blogdemo/article.txt
除了gio之外,trash-cli还可以恢复已经被删除的文件:
$ trash-restore article.txt
最后,要清空垃圾目录,我们应该使用trash-empty命令:
$ trash-empty
与gio类似,如果清空垃圾箱成功则不会有任何输出。
请注意,trash-cli和gio都不会自动清空垃圾箱。但是我们可以使用一个单独的实用程序*autotrash *来做到这一点。