Trash-Cli:Linux 上的命令行回收站工具
相信每个人都对回收站trashcan很熟悉,因为无论是对 Linux 用户,还是 Windows 用户,或者 Mac 用户来说,它都很常见。当你删除一个文件或目录的时候,该文件或目录会被移动到回收站中。
需要注意的是,当把文件移动到回收站以后,文件系统空间并没有被释放,除非把回收站清空。
如果不想永久删除文件的话(清空回收站),可以利用回收站临时存储被删除了的文件,从而在必要的时候能够帮助我们恢复删除了的文件。
但是,如果在命令行使用 rm
命令进行删除操作,那么你是不可能在回收站中找到任何被删除了的文件或目录的。所以,在执行 rm
命令前请一定要三思。如果你犯了错误(执行了 rm
命令),那么文件就被永久删除了,无法再恢复回来,因为存储在磁盘上的元数据已经不在了。
根据 freedesktop.org 规范,垃圾trash是由桌面管理器比如 GNOME、KDE 和 XFCE 等提供的一个特性。当通过文件管理器删除一个文件或目录的时候,该文件或目录将会成为垃圾trash,然后被移动到回收站中,回收站对应的目录是 $HOME/.local/share/Trash
。
回收站目录包含两个子目录:files
和 info
。files
目录存储实际被删除了的文件和目录,info
目录包含被删除了的文件和目录的信息,比如文件路径、删除日期和时间,每个文件单独存储。
你可能会问,既然已经有了图形用户界面GUI的回收站,为什么还需要命令行工具呢?因为对于大多数使用 *NIX 系统的家伙(包括我)来说,即使使用的是基于图形用户界面的系统,也更喜欢使用命令行而不是图形用户界面。所以,如果有人在寻找一个命令行回收站工具,那么这儿有一个不错的选择。
Trash-Cli 是什么
trash-cli 是一个命令行回收站工具,并且符合 FreeDesktop.org 的垃圾trash规范。它能够存储每一个垃圾文件的名字、原始路径、删除日期和权限。
如何在 Linux 上安装 Trash-Cli
绝大多数的 Linux 发行版官方仓库都提供了 Trash-Cli 的安装包,所以你可以运行下面这些命令来安装。
对于 Debian/Ubuntu 用户,使用 apt-get 或 apt 命令来安装 Trash-Cli:
<span class="pln">$ </span><span class="kwd">sudo</span><span class="pln"> apt install trash</span><span class="pun">-</span><span class="pln">cli</span>
对于 RHEL/CentOS 用户,使用 yum 命令来安装 Trash-Cli:
<span class="pln">$ </span><span class="kwd">sudo</span><span class="kwd">yum</span><span class="pln"> install trash</span><span class="pun">-</span><span class="pln">cli</span>
对于 Fedora 用户,使用 dnf 命令来安装 Trash-Cli:
<span class="pln">$ </span><span class="kwd">sudo</span><span class="pln"> dnf install trash</span><span class="pun">-</span><span class="pln">cli</span>
对于 Arch Linux 用户,使用 pacman 命令来安装 Trash-Cli:
<span class="pln">$ </span><span class="kwd">sudo</span><span class="pln"> pacman </span><span class="pun">-</span><span class="pln">S trash</span><span class="pun">-</span><span class="pln">cli</span>
对于 openSUSE 用户,使用 zypper 命令来安装 Trash-Cli:
<span class="pln">$ </span><span class="kwd">sudo</span><span class="pln"> zypper </span><span class="kwd">in</span><span class="pln"> trash</span><span class="pun">-</span><span class="pln">cli</span>
如果你的发行版中没有提供 Trash-Cli 的安装包,那么你也可以使用 pip
来安装。为了能够安装 Python 包,你的系统中应该会有 pip
包管理器。
<span class="pln">$ </span><span class="kwd">sudo</span><span class="pln"> pip install trash</span><span class="pun">-</span><span class="pln">cli</span>
<span class="typ">Collecting</span><span class="pln"> trash</span><span class="pun">-</span><span class="pln">cli</span>
<span class="typ">Downloading</span><span class="pln"> trash</span><span class="pun">-</span><span class="pln">cli</span><span class="pun">-</span><span class="lit">0.17</span><span class="pun">.</span><span class="lit">1.14</span><span class="pun">.</span><span class="kwd">tar</span><span class="pun">.</span><span class="pln">gz</span>
<span class="typ">Installing</span><span class="pln"> collected packages</span><span class="pun">:</span><span class="pln"> trash</span><span class="pun">-</span><span class="pln">cli</span>
<span class="typ">Running</span><span class="pln"> setup</span><span class="pun">.</span><span class="pln">py bdist_wheel </span><span class="kwd">for</span><span class="pln"> trash</span><span class="pun">-</span><span class="pln">cli </span><span class="pun">...</span><span class="kwd">done</span>
<span class="typ">Successfully</span><span class="pln"> installed trash</span><span class="pun">-</span><span class="pln">cli</span><span class="pun">-</span><span class="lit">0.17</span><span class="pun">.</span><span class="lit">1.14</span>
如何使用 Trash-Cli
Trash-Cli 的使用不难,因为它提供了一个很简单的语法。Trash-Cli 提供了下面这些命令:
trash-put
: 删除文件和目录(仅放入回收站中)trash-list
:列出被删除了的文件和目录trash-restore
:从回收站中恢复文件或目录 trash.trash-rm
:删除回收站中的文件trash-empty
:清空回收站
下面,让我们通过一些例子来试验一下。
1) 删除文件和目录:在这个例子中,我们通过运行下面这个命令,将 2g.txt
这一文件和 magi
这一文件夹移动到回收站中。
<span class="pln">$ trash</span><span class="pun">-</span><span class="pln">put </span><span class="lit">2g</span><span class="pun">.</span><span class="pln">txt magi</span>
和你在文件管理器中看到的一样。
2) 列出被删除了的文件和目录:为了查看被删除了的文件和目录,你需要运行下面这个命令。之后,你可以在输出中看到被删除文件和目录的详细信息,比如名字、删除日期和时间,以及文件路径。
<span class="pln">$ trash</span><span class="pun">-</span><span class="kwd">list</span>
<span class="lit">2017</span><span class="pun">-</span><span class="lit">10</span><span class="pun">-</span><span class="lit">01</span><span class="lit">01</span><span class="pun">:</span><span class="lit">40</span><span class="pun">:</span><span class="lit">50</span><span class="pun">/</span><span class="pln">home</span><span class="pun">/</span><span class="pln">magi</span><span class="pun">/</span><span class="pln">magi</span><span class="pun">/</span><span class="lit">2g</span><span class="pun">.</span><span class="pln">txt</span>
<span class="lit">2017</span><span class="pun">-</span><span class="lit">10</span><span class="pun">-</span><span class="lit">01</span><span class="lit">01</span><span class="pun">:</span><span class="lit">40</span><span class="pun">:</span><span class="lit">50</span><span class="pun">/</span><span class="pln">home</span><span class="pun">/</span><span class="pln">magi</span><span class="pun">/</span><span class="pln">magi</span><span class="pun">/</span><span class="pln">magi</span>
3) 从回收站中恢复文件或目录:任何时候,你都可以通过运行下面这个命令来恢复文件和目录。它将会询问你来选择你想要恢复的文件或目录。在这个例子中,我打算恢复 2g.txt
文件,所以我的选择是 0
。
<span class="pln">$ trash</span><span class="pun">-</span><span class="pln">restore</span>
<span class="lit">0</span><span class="lit">2017</span><span class="pun">-</span><span class="lit">10</span><span class="pun">-</span><span class="lit">01</span><span class="lit">01</span><span class="pun">:</span><span class="lit">40</span><span class="pun">:</span><span class="lit">50</span><span class="pun">/</span><span class="pln">home</span><span class="pun">/</span><span class="pln">magi</span><span class="pun">/</span><span class="pln">magi</span><span class="pun">/</span><span class="lit">2g</span><span class="pun">.</span><span class="pln">txt</span>
<span class="lit">1</span><span class="lit">2017</span><span class="pun">-</span><span class="lit">10</span><span class="pun">-</span><span class="lit">01</span><span class="lit">01</span><span class="pun">:</span><span class="lit">40</span><span class="pun">:</span><span class="lit">50</span><span class="pun">/</span><span class="pln">home</span><span class="pun">/</span><span class="pln">magi</span><span class="pun">/</span><span class="pln">magi</span><span class="pun">/</span><span class="pln">magi</span>
<span class="typ">What</span><span class="kwd">file</span><span class="pln"> to restore </span><span class="pun">[</span><span class="lit">0.</span><span class="pun">.</span><span class="lit">1</span><span class="pun">]:</span><span class="lit">0</span>
4) 从回收站中删除文件:如果你想删除回收站中的特定文件,那么可以运行下面这个命令。在这个例子中,我将删除 magi
目录。
<span class="pln">$ trash</span><span class="pun">-</span><span class="kwd">rm</span><span class="pln"> magi</span>
5)清空回收站:如果你想删除回收站中的所有文件和目录,可以运行下面这个命令。
<span class="pln">$ trash</span><span class="pun">-</span><span class="kwd">empty</span>
6)删除超过 X 天的垃圾文件:或者,你可以通过运行下面这个命令来删除回收站中超过 X 天的文件。在这个例子中,我将删除回收站中超过 10
天的项目。
<span class="pln">$ trash</span><span class="pun">-</span><span class="kwd">empty</span><span class="lit">10</span>
Trash-Cli 可以工作的很好,但是如果你想尝试它的一些替代品,那么你也可以试一试 gvfs-trash 和 autotrash 。
via: https://www.2daygeek.com/trash-cli-command-line-trashcan-linux-system/