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-put
和rm
语法并不完全相同,可能存在不兼容的地方。另一个是,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