linux回收站
相信大家在使用linux的过程中,一定有过这样的困惑,文件删除了就没有了,尤其在带业务平台,一旦有升级替换,就会可能因为误删文件而没有备份,导致一系列的头疼问题,下面咱们就探讨一下linux的回收站机制。
其实linux和windows一样,也有一套回收站机制,只不过平时用的不多而已。回收站包叫做trash-cli,位于epel仓库。
# 安装EPEL仓库:
对于CentOS 7:
yum install epel-release
# 对于CentOS 8或者RHEL 8,可以使用:
dnf install epel-release 或者 yum install epel-release
# 更新元数据
yum clean all && yum makecache
# 安装trash-cli
yum trash-cli -y
如果在安装过程中提示没找到trash-cli,那说明epel-release版本太老了,需要升级新的epel,课通过升级和重新安装两种方法处理。
# 下载最新版epel-release安装包
wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
# 安装
rpm -ivh epel-release-latest-8.noarch.rpm
# 升级
rpm -Uvh epel-release-latest-8.noarch.rpm
如果出现以下错误,需要删除重新安装
rpm -ivh epel-release-latest-8.noarch.rpm
警告:epel-release-latest-8.noarch.rpm: 头V4 RSA/SHA256 Signature, 密钥 ID 2f86d6a1: NOKEY Verifying...
################################# [100%] 准备中...
################################# [100%]
file /etc/yum.repos.d/epel-modular.repo from install of epel-release-8-22.el8.noarch conflicts with file from package epel-release-8-11.el8.noarch
file /etc/yum.repos.d/epel-testing-modular.repo from install of epel-release-8-22.el8.noarch conflicts with file from package epel-release-8-11.el8.noarch
file /etc/yum.repos.d/epel-testing.repo from install of epel-release-8-22.el8.noarch conflicts with file from package epel-release-8-11.el8.noarch
file /etc/yum.repos.d/epel.repo from install of epel-release-8-22.el8.noarch conflicts with file from package epel-release-8-11.el8.noarch
file /usr/lib/systemd/system-preset/90-epel.preset from install of epel-release-8-22.el8.noarch conflicts with file from package epel-release-8-11.el8.noarch
file /usr/share/doc/epel-release/README-epel-8-packaging.md from install of epel-release-8-22.el8.noarch conflicts with file from package epel-release-8-11.el8.noarch# 删除老版本包
yum remove epel-release
# 安装新包
rpm -ivh epel-release-latest-8.noarch.rpm
# 更新元数据
yum clean all && yum makecache
# 安装trash-cli
yum install trash-cli
回收站用法
# 删除文件和文件夹用 trash-put,可以做个同义词:alias rm=trash-put
# 恢复被删除的文件和文件夹用trash-restore,恢复命令要在用户的home目录下进行
[root@localhost ~]# trash-put a
[root@localhost ~]# ls -alrt .local/share/Trash/files/
总用量 4
drwx------. 4 root root 31 6月 6 17:01 ..
-rw-r--r--. 1 root root 2 6月 6 17:08 a
drwx------. 2 root root 15 6月 6 17:17 .
[root@localhost ~]# cat .local/share/Trash/info/a.trashinfo
[Trash Info]
Path=/root/a
DeletionDate=2025-06-06T17:17:23
[root@localhost ~]# trash-restore 0 2025-06-06 17:17:23 /root/a
What file to restore [0..0]: 0
[root@localhost ~]# ls -alrt a
-rw-r--r--. 1 root root 2 6月 6 17:08 a
# 删除恢复文件夹的用法和文件的用法一致,就不赘述了
总之,linux回收站是一个相当有用的工具,在实际业务系统,对防止误删有很大作用。