trash-cli

trash-cli

Linux命令行文件回收站工具

trash-cli提供trash-put、trash-empty、trash-list等命令,实现Linux命令行下的文件回收站功能。它采用与KDE/GNOME/XFCE相同的回收站机制,支持记录原始路径、删除日期和权限。用户可通过命令行或脚本调用trash-cli,方便地管理已删除文件。

trash-cli命令行工具文件管理回收站LinuxGithub开源项目

trash-cli - FreeDesktop.org 垃圾桶的命令行界面

|Downloads|

|Donate|_

简体中文_

trash-cli 可以将文件移入垃圾桶,并记录原始路径、删除日期和权限。它使用与 KDE、GNOME 和 XFCE 相同的垃圾桶,但你可以从命令行(和脚本)调用它。

它提供以下命令:

trash-put           将文件和目录移入垃圾桶
trash-empty         清空垃圾桶
trash-list          列出垃圾桶中的文件
trash-restore       恢复垃圾桶中的文件
trash-rm            从垃圾桶中删除单个文件

使用方法

将文件移入垃圾桶:

$ trash-put foo

列出垃圾桶中的文件:

$ trash-list
2008-06-01 10:30:48 /home/andrea/bar
2008-06-02 21:50:41 /home/andrea/bar
2008-06-23 21:50:49 /home/andrea/foo

在垃圾桶中搜索文件:

$ trash-list | grep foo
2007-08-30 12:36:00 /home/andrea/foo
2007-08-30 12:39:41 /home/andrea/foo

恢复垃圾桶中的文件:

$ trash-restore
0 2007-08-30 12:36:00 /home/andrea/foo
1 2007-08-30 12:39:41 /home/andrea/bar
2 2007-08-30 12:39:41 /home/andrea/bar2
3 2007-08-30 12:39:41 /home/andrea/foo2
4 2007-08-30 12:39:41 /home/andrea/foo
要恢复哪个文件 [0..4]: 4
$ ls foo
foo

恢复垃圾桶中的文件并覆盖现有文件:

$ echo "original">foo
$ ls
foo
$ trash foo
$ echo "new">foo
$ trash-restore --overwrite
0 2022-11-01 22:15:00 /home/andrea/foo
要恢复哪个文件 [0..0]: 0
$ cat foo
original

恢复多个垃圾桶中的文件,用逗号分隔,也支持范围:

$ trash-restore
0 2007-08-30 12:36:00 /home/andrea/foo
1 2007-08-30 12:39:41 /home/andrea/bar
2 2007-08-30 12:39:41 /home/andrea/bar2
3 2007-08-30 12:39:41 /home/andrea/foo2
要恢复哪些文件 [0..3]: 0-2, 3
$ ls foo bar bar2 foo2
foo bar bar2 foo2

清空垃圾桶中的所有文件:

$ trash-empty

只删除垃圾桶中超过 <days> 天的文件:

$ trash-empty <days>

示例:

$ date
Tue Feb 19 20:26:52 CET 2008
$ trash-list
2008-02-19 20:11:34 /home/einar/today
2008-02-18 20:11:34 /home/einar/yesterday
2008-02-10 20:11:34 /home/einar/last_week
$ trash-empty 7
$ trash-list
2008-02-19 20:11:34 /home/einar/today
2008-02-18 20:11:34 /home/einar/yesterday
$ trash-empty 1
$ trash-list
2008-02-19 20:11:34 /home/einar/today

只删除匹配特定模式的文件:

$ trash-rm \*.o

注意:你需要使用引号来保护模式不被shell展开。

常见问题

如何创建顶级 .Trash 目录?


步骤:

    sudo mkdir --parent /.Trash
    sudo chmod a+rw /.Trash
    sudo chmod +t /.Trash

我可以将 `rm` 别名为 `trash-put` 吗?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

你可以这样做,但不应该。早期我认为这是个好主意,但现在我改变了想法。

尽管 `trash-put` 的接口看似与 `rm` 兼容,但它们的语义不同,这会导致问题。例如,`rm` 需要 `-R` 参数来删除目录,而 `trash-put` 不需要。

但有时我忘记使用 `trash-put`,真的不能这样做吗?

你可以将 rm 别名为一个提醒你不要使用它的命令:

alias rm='echo "这不是你要找的命令。"; false'

然后,如果你真的想使用 rm,只需在前面加上反斜杠来绕过别名:

\rm 无望的文件

注意,Bash 别名只在交互式 shell 中使用,所以使用这个别名不应该干扰期望使用 rm 的脚本。

被移入垃圾桶的文件去哪里了?

从主分区移入垃圾桶的文件会被移动到这里:

    ~/.local/share/Trash/

如何自动删除超过 30 天的文件?

运行以下命令:

(crontab -l ; echo "@daily $(which trash-empty) 30") | crontab -

这将更新你的 crontab 文件,添加一个每天运行的 trash-empty 命令,删除超过 30 天的文件。要查看你的 crontab,使用:crontab -l

安装

简单方法

要求:
* Python 3(Python 2.7 也可以)
* pipx(可选,用于在干净的环境中安装)

如果有 pipx,可以使用:

    pipx install trash-cli

或者,使用普通的 pip 安装:

    pip install trash-cli

注意:你可能需要将 ~/.local/bin 添加到 PATH 中:

    echo 'export PATH="$PATH":~/.local/bin' >> ~/.bashrc
    source ~/.bashrc # 重新加载 .bashrc

卸载时使用:

    pipx uninstall trash-cli

或:

    pip uninstall trash-cli

最新版本(从源码安装)

首先需要卸载之前的 trash-cli 版本:

$ [sudo] pip uninstall trash-cli # 使用 pip 卸载之前的版本
$ [sudo] apt-get remove trash-cli # 使用 apt 卸载之前的版本
$ [sudo] yum uninstall trash-cli # 使用 yum 卸载之前的版本
$ ... # 参考你的发行版的包管理器

然后从 git 安装最新版本:

$ [sudo] pip install git+https://github.com/andreafrancia/trash-cli

用户安装后,你可能需要在 .bashrc/.zshrc 中添加这一行:

export PATH=~/.local/bin:"$PATH"

从包管理器安装


Debian/Ubuntu (apt):

    sudo apt install trash-cli

Arch Linux (pacman):

    sudo pacman -S trash-cli

Fedora (dnf):

    sudo dnf install trash-cli

安装 shell 补全

需要通过以下方式安装:

pipx install 'trash-cli[completion]'

或:

pip install 'trash-cli[completion]'

然后:

cmds=(trash-empty trash-list trash-restore trash-put trash)
for cmd in ${cmds[@]}; do
  $cmd --print-completion bash | sudo tee /usr/share/bash-completion/completions/$cmd
  $cmd --print-completion zsh | sudo tee /usr/share/zsh/site-functions/_$cmd
  $cmd --print-completion tcsh | sudo tee /etc/profile.d/$cmd.completion.csh
done

错误

如果你发现了错误,请在这里报告:

https://github.com/andreafrancia/trash-cli/issues

反馈

你可以发送邮件至 andrea@andreafrancia.it

开发

环境设置:

python -m venv .venv
source .venv/bin/activate
pip install -r requirements-dev.txt -r requirements.txt

运行测试:

pytest -m 'not slow'        # 只运行快速测试
pytest -m 'slow'            # 运行慢速测试
pytest                      # 运行所有测试

致谢

感谢 Paypal 捐赠者。

感谢项目贡献者。

感谢 JetBrains 为开源开发提供的许可证。

编辑推荐精选

酷表ChatExcel

酷表ChatExcel

大模型驱动的Excel数据处理工具

基于大模型交互的表格处理系统,允许用户通过对话方式完成数据整理和可视化分析。系统采用机器学习算法解析用户指令,自动执行排序、公式计算和数据透视等操作,支持多种文件格式导入导出。数据处理响应速度保持在0.8秒以内,支持超过100万行数据的即时分析。

AI工具酷表ChatExcelAI智能客服AI营销产品使用教程
DeepEP

DeepEP

DeepSeek开源的专家并行通信优化框架

DeepEP是一个专为大规模分布式计算设计的通信库,重点解决专家并行模式中的通信瓶颈问题。其核心架构采用分层拓扑感知技术,能够自动识别节点间物理连接关系,优化数据传输路径。通过实现动态路由选择与负载均衡机制,系统在千卡级计算集群中维持稳定的低延迟特性,同时兼容主流深度学习框架的通信接口。

DeepSeek

DeepSeek

全球领先开源大模型,高效智能助手

DeepSeek是一家幻方量化创办的专注于通用人工智能的中国科技公司,主攻大模型研发与应用。DeepSeek-R1是开源的推理模型,擅长处理复杂任务且可免费商用。

问小白

问小白

DeepSeek R1 满血模型上线

问小白是一个基于 DeepSeek R1 模型的智能对话平台,专为用户提供高效、贴心的对话体验。实时在线,支持深度思考和联网搜索。免费不限次数,帮用户写作、创作、分析和规划,各种任务随时完成!

AI主流办公工具有哪些办公热门AI 助手
KnowS

KnowS

AI医学搜索引擎 整合4000万+实时更新的全球医学文献

医学领域专用搜索引擎整合4000万+实时更新的全球医学文献,通过自主研发AI模型实现精准知识检索。系统每日更新指南、中英文文献及会议资料,搜索准确率较传统工具提升80%,同时将大模型幻觉率控制在8%以下。支持临床建议生成、文献深度解析、学术报告制作等全流程科研辅助,典型用户反馈显示每周可节省医疗工作者70%时间。

Windsurf Wave 3

Windsurf Wave 3

Windsurf Editor推出第三次重大更新Wave 3

新增模型上下文协议支持与智能编辑功能。本次更新包含五项核心改进:支持接入MCP协议扩展工具生态,Tab键智能跳转提升编码效率,Turbo模式实现自动化终端操作,图片拖拽功能优化多模态交互,以及面向付费用户的个性化图标定制。系统同步集成DeepSeek、Gemini等新模型,并通过信用点数机制实现差异化的资源调配。

AI IDE
腾讯元宝

腾讯元宝

腾讯自研的混元大模型AI助手

腾讯元宝是腾讯基于自研的混元大模型推出的一款多功能AI应用,旨在通过人工智能技术提升用户在写作、绘画、翻译、编程、搜索、阅读总结等多个领域的工作与生活效率。

AI助手AI对话AI工具腾讯元宝智能体热门 AI 办公助手
Grok3

Grok3

埃隆·马斯克旗下的人工智能公司 xAI 推出的第三代大规模语言模型

Grok3 是由埃隆·马斯克旗下的人工智能公司 xAI 推出的第三代大规模语言模型,常被马斯克称为“地球上最聪明的 AI”。它不仅是在前代产品 Grok 1 和 Grok 2 基础上的一次飞跃,还在多个关键技术上实现了创新突破。

OmniParser

OmniParser

帮助AI理解电脑屏幕 纯视觉GUI元素的自动化解析方案

开源工具通过计算机视觉技术实现图形界面元素的智能识别与结构化处理,支持自动化测试脚本生成和辅助功能开发。项目采用模块化设计,提供API接口与多种输出格式,适用于跨平台应用场景。核心算法优化了元素定位精度,在动态界面和复杂布局场景下保持稳定解析能力。

OmniParser界面解析交互区域检测Github开源项目
流畅阅读

流畅阅读

AI网页翻译插件 双语阅读工具,还原母语级体验

流畅阅读是一款浏览器翻译插件,通过上下文智能分析提升翻译准确性,支持中英双语对照显示。集成多翻译引擎接口,允许用户自定义翻译规则和快捷键配置,操作数据全部存储在本地设备保障隐私安全。兼容Chrome、Edge、Firefox等主流浏览器,基于GPL-3.0开源协议开发,提供持续的功能迭代和社区支持。

AI翻译AI翻译引擎AI翻译工具
下拉加载更多