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-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的配置文件设置别名

# ~/.zshrcalias rm="trash-put"

如果一些状况下在交互界面不想用trash-put,能够用斜线勾销别名

\rm 文件名