游乐游手机版
首页/系统平台/文章详情

CentOS增加系统回收站功能介绍

时间:2026-04-15 14:28
Linux“回收站”机制:给rm命令加一道保险 在Linux系统里,用过rm命令的朋友大概都深有体会:文件一旦删除,想恢复可就麻烦大了。即便费尽周折找回,文件名也往往变成了一串难以辨认的数字,实用性大打折扣。 有没有办法像Windows那样,给命令行也装上一个“回收站”呢?答案是肯定的。今天就来分享

Linux“回收站”机制:给rm命令加一道保险

在Linux系统里,用过rm命令的朋友大概都深有体会:文件一旦删除,想恢复可就麻烦大了。即便费尽周折找回,文件名也往往变成了一串难以辨认的数字,实用性大打折扣。

有没有办法像Windows那样,给命令行也装上一个“回收站”呢?答案是肯定的。今天就来分享一套行之有效的方案,通过改造环境变量,让rm命令变得“温柔”起来。

第一步:为root用户配置回收站

我们首先从root用户开始。核心思路是,用命令别名(alias)将rm重定义为一个移动到特定目录的操作,而不是直接删除。

打开root用户的环境变量配置文件:

vi ~/.bashrc

找到通常位于第5行左右的alias rm='rm -i'这行(如果存在),把它注释掉:

#alias rm='rm -i'

然后,在文件的最后,添加下面这段函数定义:

mkdir -p ~/.trash
alias rm=trash
alias r=trash
alias rl='ls ~/.trash'
alias ur=undelfile

undelfile()
{
  mv -i ~/.trash/$@ ./
}

trash()
{
  mv $@ ~/.trash/
}

cleartrash()
{
    read -p "clear sure?[n]" confirm
    [ $confirm == 'y' ] || [ $confirm == 'Y' ]  && /bin/rm -rf ~/.trash/*
}

保存退出后,别忘了让配置立即生效:

source ~/.bashrc

效果验证与使用

配置完成后,用ll -a命令查看家目录,你会发现多了一个隐藏文件夹.trash。它就是我们的“回收站”。

drwxr-xr-x. 2 root root 4096 Jun 4 11:31 .trash

现在,尝试删除一个文件:

[root@localhost ~]# rm percona-xtrabackup_2.2.3.orig.tar.gz

再去查看回收站目录,被“删除”的文件果然好端端地躺在那儿:

[root@localhost ~]# ll .trash/
total 33780
-rw-r--r--. 1 root root 34584359 Jun  2 09:39 percona-xtrabackup_2.2.3.orig.tar.gz

如果需要清空回收站,运行cleartrash命令,它会贴心地让你二次确认:

[root@localhost ~]# cleartrash
clear sure?[n]y

再次查看,回收站就被清空了。

重要提醒与进阶配置

这里有个关键点需要注意:我们只是为rm命令创建了别名。如果使用绝对路径/bin/rm,文件依然会被直接删除,不会进入回收站。这在需要彻底删除时有用,但也意味着操作时要格外留心。

另外,回收站目录不会自动清理,时间长了可能堆积大量文件。我们可以设置一个定期任务。比如,编写一个脚本,自动清理7天前的文件:

#!/bin/bash
find /root/.trash -ctime 7 -type f -name "*" -exec /bin/rm {} \;

然后,将这个脚本加入crontab计划任务即可。

第二步:推广到所有系统用户

如果希望服务器上所有用户都能享受这个“保险”机制,只需将配置放在系统级的环境变量文件中。

编辑/etc/profile文件:

vi /etc/profile

同样,在文件末尾添加与之前完全相同的函数和别名定义。保存后,重新加载配置:

source /etc/profile

之后,任何新创建的用户登录时,系统都会自动在其家目录创建.trash文件夹,并启用回收站功能。

普通用户测试

我们创建一个普通用户a来测试一下:

useradd a
passwd a

切换到该用户登录,执行ll -a,可以看到.trash目录已经自动创建。接着进行测试:

[a@localhost ~]$ touch 1.txt
[a@localhost ~]$ rm 1.txt
[a@localhost ~]$ ll .trash/
total 0
-rw-rw-r--. 1 a a 0 Jun  4 11:45 1.txt

看,文件成功转移到了回收站,功能完全正常。

最后,如果你觉得~/.trash这个默认位置不合适,完全可以在环境变量配置中修改trash()函数里的路径,将其指向任何你有写入权限的目录。如此,一套简单而实用的Linux命令行回收站系统就搭建完成了,这下可以更放心地管理文件了。

来源:https://www.jb51.net/os/RedHat/529322.html
上一篇centos7下如何安装xrdp? 下一篇Ubuntu22.04安装SSH无法连接的问题及解决方法
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
麒麟系统字体太小看不清如何调整界面字体大小
系统平台 · 2026-07-01

麒麟系统字体太小看不清如何调整界面字体大小

麒麟系统高分屏字体过小需分层干预:控制中心调整缩放至150%或200%,辅助功能增大文本,命令行设置MateDPI值(2K设200 0,4K设220 0),QT类软件用环境变量QT_DEVICE_PIXEL_RATIO=2,终端取消使用系统等宽字体并改字号,输入法候选字体调至16或18。

Win11记事本默认不换行如何设置为自动换行
系统平台 · 2026-07-01

Win11记事本默认不换行如何设置为自动换行

Windows11记事本默认不自动换行,手动开启仅对当前窗口有效。若要永久启用,可修改注册表,在HKCU Software Microsoft Notepad路径下新建DWORD值fWrap并设为1,或导入含此设置的 reg文件,此后所有新建记事本文件均自动换行显示,无需重复手动操作,一劳永逸。

银河麒麟系统时间快几分钟的调整方法
系统平台 · 2026-07-01

银河麒麟系统时间快几分钟的调整方法

银河麒麟系统时钟快几分钟的解决方法:先用date命令校正系统时间,再执行hwclock--systohc写入硬件时钟;启用systemd-timesyncd并配置阿里云NTP服务器;禁用chronyd避免服务冲突;双系统用户需设置硬件时钟为UTC模式。

Win11多屏下设置软件只在特定屏幕打开的方法
系统平台 · 2026-07-01

Win11多屏下设置软件只在特定屏幕打开的方法

双屏办公时,通过快捷方式添加启动参数、利用Windows窗口位置记忆功能或PowerShell脚本,可让软件自动在副屏打开,免去手动拖拽,提升工作效率。

MacBook如何取消菜单栏蓝牙搜索状态
系统平台 · 2026-07-01

MacBook如何取消菜单栏蓝牙搜索状态

在macOS中,进入系统设置“控制中心”,将蓝牙设为“不显示在菜单栏”即可隐藏图标且功能正常;旧版系统则在蓝牙偏好设置中取消勾选“在菜单栏中显示”。