trash-cli,Linux 的命令行回收站

Posted yizdu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了trash-cli,Linux 的命令行回收站相关的知识,希望对你有一定的参考价值。

rm 最大的问题就删除后就没办法用常规方法恢复文件,如果因为手抖、Shell脚本错误误删文件,那一定是很麻烦的事情。

trash-cli 用于移动文件到回收站,同时会记录文件的原地址、删除日期和权限。trash-cli 和 KDE、GNOME、XFCE 的图形文件管理器使用同一个回收站,你可以在命令行或脚本运行 trash-cli。项目Github主页

安装和使用
其实官方的简体中文README已经写得很好了README_zh-CN.rst

简而言之,首先是安装
如果是Debian家族的发行版,可以直接使用apt安装

sudo apt install trash-cli

其次也可以用python pip 安装

pip install trash-cli

使用方法

trash-put           把文件或目录移动到回收站
trash-empty         清空回收站
trash-list          列出回收站文件
trash-restore       恢复回收站文件
trash-rm            删除回收站文件

其中,最重要的恢复文件命令trash-restore,用法是先输入trash-restore,然后再根据列表选择对应的序号恢复文件。

trash-put其实和rm命令操作很相似,但是又有不同,rm删除目录时要加上-r参数,但trash-put不需要。但是尽管如此,trash-put支持输入-r和其他参数,但仅仅是为了兼容rm
运行trash-put -h给出的解释是这样的

选项:
  --version            显示程序版本并退出
  -h, --help           显示这个帮助信息
  -d, --directory      忽略 (为了和GUN rm 兼容)
  -f, --force          忽略 (为了和GUN rm 兼容)
  -i, --interactive    忽略 (为了和GUN rm 兼容)
  -r, -R, --recursive  忽略 (为了和GUN rm 兼容)
  -v, --verbose        显示这个程序具体做了什么

我应该给trash-put设置别名(alias),用来代替rm吗?我在写这篇分享文章时,确实是这样做的。但是官方其实并不建议这样。
一个原因是,trash-putrm语法并不完全相同,可能存在不兼容的地方。另一个是,shell的alias只在交互界面有效,使用脚本运行时无效。如果忘记这点可能造成麻烦。还有就是对于使用多种shell的用户,比如我,平常使用zsh,但是一些情况下会用回bash,如果不同时在bash和zsh设置别名,可能会出差错。

如果真的要用trash-put代替rm,可以在你的shell的配置文件设置别名

# ~/.zshrc
alias rm="trash-put"

如果一些情况下在交互界面不想用trash-put,可以用斜线取消别名

\\rm 文件名

以上是关于trash-cli,Linux 的命令行回收站的主要内容,如果未能解决你的问题,请参考以下文章

《现代命令行工具指南》9. 删除文件:让删除文件变得安全可控 - trash-cli

《现代命令行工具指南》9. 删除文件:让删除文件变得安全可控 - trash-cli

Linux安装回收站trash-cli

ubuntu/linux trash-cli 删除文件到回收站 类似回收站机制的删除

Linux系统防止误删除文件

Linux(Ubuntu)使用日记------trash-cli防止误删文件