Linux 回收站功能
我们在 Windows/Mac OSX经常会使用到回收站,大多数删除操作将文件或目录皆是移动到回收站, 而 Linux 对大多数用户来说更了解 rm
命令, rm
命令是直接将文件或目录直接从硬盘上擦出, 这样就带来一个问题, 如果快速操作错了呢? 想后悔, 可是文件或目录已经从硬盘被擦出,想恢复只能通过一些专业的恢复工具才能完成, 即使是专业的恢复工具,也不是100%能完整恢复.因此, 在 Linux 上使用 rm
命令是个高危操作, 必须非常谨慎. 如果 Linux 上有类似回收站的功能不是就更好了? 即使操作错了,我们还是可以从回收站中快速恢复.
Linux 图形环境,直接使用对应的文件浏览器操作文件或者目录, 对应信息删除时自动会放置到回收站中.
而对于命令行环境, 有比较多的方案, 比如 trash-cli
/ gio trash
等.
trash-cli
trash-cli
是个python实现的命令行工具,用于实现回收站功能. 官方网站是 https://github.com/andreafrancia/trash-cli
删除文件或目录
trash-put example example.txt
列出所有删除文件或目录
root@server:~# trash-list
2017-10-01 01:40:50 /root/example
2017-10-01 01:40:50 /root/exmaple.txt
从回收站恢复文件或目录
root@server:~# trash-restore
2017-10-01 01:40:50 /root/example
2017-10-01 01:40:50 /root/exmaple.txt
What file to restore [0..1]: 0
从回收站彻底删除文件或目录
root@server:~# trash-rm example.txt
清空回收站
root@server:~# trash-empty
删除超过10天之前的文件
root@server:~# trash-empty 10
gio trash
gio
命令是 glib
中的工具,需要单独安装
REHL/CentOS
apt install libglib2.0-dev
Debian/Ubuntu
yum -y install glib2-devel
glib
是 gtk
的一些核心lib库,同时提供一些基础的系统工具, 比如gio, 其中对我们这里有用的是 gio trash
, 用于将文件和目录移动到回收站.
root@server:~# gio help trash
Usage:
gio trash [OPTION…] [LOCATION...]
Move files or directories to the trash.
Options:
-f, --force Ignore nonexistent files, never prompt
--empty Empty the trash
移动文件或目录到回收站
root@server:~# gio trash example example.txt
rm
高危险性, 建议将 rm
操作别名为 gio trash
命令, 添加 alias rm="gio trash"
到 ~/.bashrc