三步学会 trash-cli:把命令行删除变成可恢复的回收站操作
【免费下载链接】trash-cliMove files and folders to the trash项目地址: https://gitcode.com/gh_mirrors/tra/trash-cli
一次手滑,文件就没了:你缺一颗"后悔药"
"糟糕,我把整个项目删了!"——在终端执行rm -rf时敲错路径、清理临时文件时误删刚写完的代码,这类手滑事故几乎每个开发者都经历过。命令行的删除是永久性的,文件消失后连回收站里都找不到。trash-cli 正是为这个痛点而生的命令行工具:它把"删除"变成"移入系统回收站",文件不会真正消失,随时可以找回,相当于给每次删除都配了一颗后悔药。
一分钟认识 trash-cli:把删除变成移入回收站的命令行工具
简单来说,trash-cli 是一个把文件和文件夹移入系统回收站(macOS 废纸篓、Windows 回收站、Linux 回收站)的命令行工具,就像把文件扔进垃圾桶而不是塞进碎纸机。它支持 macOS、Linux 和 Windows 三大平台,核心亮点如下:
- 删除可恢复:删错了能从系统回收站找回,杜绝永久误删。
- 兼容 rm 习惯:能自动忽略
rm的-r、-f等常用参数,可直接顶替rm使用。 - 支持通配符:可以按
*.png这类模式批量匹配文件。
| 对比项 | rm | trash |
|---|---|---|
| 删除结果 | 永久删除 | 移入系统回收站 |
| 能否恢复 | 基本不能 | 随时可恢复 |
| 常用参数 | -r -f 等 | 自动忽略这些参数 |
适合谁用?经常在终端删文件又怕手滑的开发者、需要编写清理脚本的系统管理员,以及所有被rm误删坑过的人。
三步快速上手:安装 trash-cli 并安全删除第一个文件
第 1 步:全局安装
trash-cli 基于 Node.js,需要Node.js 20 或更高版本,先运行node -v确认版本,再用 npm 全局安装:
npm install --global trash-cli安装完成后,终端里就多了一个trash命令。
第 2 步:执行一次最小删除
新建一个测试文件,然后把它"扔掉":
echo "test" > demo.txt trash demo.txt第 3 步:确认预期结果
运行ls demo.txt会提示文件不存在——它已经从当前目录消失了。打开系统回收站,你能看到demo.txt乖乖躺在里面,随时可以恢复。这就是与rm最本质的区别:删除不等于消失。
核心功能逐个拆解:trash-cli 的四种常用姿势
一次删除多个文件或目录
- 适用场景:清理项目时想同时删掉多个文件、文件夹,不必一次次敲命令。
- 操作步骤:把所有路径一次性传给
trash:
trash a.txt b.txt old-folder/- 效果:这些文件与目录全部进入回收站,互不影响。
用通配符批量匹配并排除指定文件
- 适用场景:只想删掉目录里的所有图片,但保留特别喜欢的一张。
- 操作步骤:注意通配符一定要加单引号,避免被 shell 提前展开;
!开头表示排除:
trash '*.png' '!unicorn.png'- 效果:目录下除
unicorn.png外所有 PNG 图片都被移入回收站。
让 rm 变身安全版:一行 alias 大法
- 适用场景:已经习惯了
rm的肌肉记忆,想在保持习惯的同时获得回收站保护。 - 操作步骤:在
~/.bashrc(或~/.zshrc)中加一行别名:
alias rm=trash- 效果:之后敲
rm -rf 目录/,trash-cli 会忽略-r、-f等rm参数,把目录安全地移入回收站,手滑了也能救回来。
删除后回显清单:--verbose
- 适用场景:批量删除时想确认到底删了哪些文件。
- 操作步骤:加上
-v或--verbose参数:
trash -v '*.log'- 效果:终端会逐行打印每个被移入回收站的文件路径,结果一目了然。
新手避坑指南:trash-cli 最常见的三个坑
通配符没加引号,被 shell 抢先展开
- 报错现象:明明写了
trash *.png,却提示找不到文件,或只删掉部分图片。 - 原因:shell 会先把
*.png展开成具体文件名,再交给 trash-cli。 - 解决办法:给通配符加上单引号:
trash '*.png'。
一个路径都不给,直接报错退出
- 报错现象:运行
trash后输出Specify at least one path。 - 原因:trash-cli 要求至少传入一个路径,否则无法执行。
- 解决办法:至少带上一个文件或目录路径再运行。
通配符匹配不到隐藏文件
- 报错现象:
trash '目录/*'执行后,以.开头的隐藏文件纹丝不动。 - 原因:默认情况下通配符不匹配点文件(dotfiles)。
- 解决办法:加上
--dot参数:trash --dot '目录/*'。
延伸与结语
进阶方向:可以在清理脚本中把trash与定时任务结合,实现"自动清理过期文件但随时可恢复"的工作流;配套的 empty-trash-cli 工具还能一键清空回收站。项目自带的 readme.md 中有完整的参数说明与 FAQ,遇到问题可以随时查阅。
如果你也受够了rm的"一删永别",不妨现在就装一个 trash-cli,让每次删除都变成可反悔的操作。删除前多一个回收站,删除后就少一份后悔。
【免费下载链接】trash-cliMove files and folders to the trash项目地址: https://gitcode.com/gh_mirrors/tra/trash-cli
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考