linux rm命令改造成回收站

本文介绍如何在Linux中通过修改bash环境变量,将危险的rm命令替换为trash命令,实现误删文件的恢复功能。通过在用户家目录下创建.trash目录,使用alias命令定义新的trash和ur命令,可以轻松恢复误删的文件,并提供cleartrash命令清除.trash目录以释放空间。演示了从创建文件到误删、恢复、清理的完整流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在linux下删除文件用的是 rm 命令,这个命令是非常强大的,几乎可以删除linux下所有的文件。

如果你不小心敲个 # rm -rf /*   ,那就非常愉快了。我相信每个用linux的人都有过误删除文件的经历,删了怎么办。是不是瞬间就懵逼了。linux不像windows有个回收站,删除了恢复起来就很麻烦了。如果你真的误删除了不要方。第一件事该是卸载掉被删文件所在的盘,或者以只读模式挂(防止写入覆盖掉删除的文件,因为删除文件只是删掉了文件的索引)。   不过恢复文件是个麻烦事, 尤其是我这种菜鸟,简直懵逼。所以网上搜索了下,果然大神们都是有想法的, 将rm 改造成 mv 然后定时清理下就好(还可以写个计划任务,清理都不用自己动手。)所以将rm改造下是非常有用的

    正题:

首先修改bash的环境变量

# cd ~

# vim .bashrc

#alias rm='rm -i'  //注释掉这行


然后添加如下内容

mkdir -p ~/.trash
alias rm=trash
alias rl='ll -a ~/.trash'
alias ur=undelfile
 
undelfile()
{
    mv -i ~/.trash/$@ ./

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

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

重新加载环境变量

source ~/.bashrc  


这样只有当前用户会生效,为了让所有的用户生效,可以将上面的内容写到 

 /etc/bashrc  

重新加载环境变量,或者重新打开终端就可以所有的用户都有效的

演示效果如下:

[llin@localhost ~]$ mkdir rm_test
[llin@localhost ~]$ touch rm_test/test.txt
[llin@localhost ~]$ ls rm_test/test.txt 
rm_test/test.txt
[llin@localhost ~]$ rm rm_test/
[llin@localhost ~]$ rl
总用量 4
drwxrwxr-x.  3 llin llin   20 Mar 28 21:49 .
drwx------. 26 llin llin 4096 Mar 28 21:49 ..
drwxrwxr-x.  2 llin llin   21 Mar 28 21:49 rm_test
[llin@localhost ~]$ ls rm_test
ls: 无法访问rm_test: 没有那个文件或目录
[llin@localhost ~]$ ur rm_test
[llin@localhost ~]$ ls rm_test
test.txt
[llin@localhost ~]$ rm rm_test/
[llin@localhost ~]$ rl
总用量 4
drwxrwxr-x.  3 llin llin   20 Mar 28 21:49 .
drwx------. 26 llin llin 4096 Mar 28 21:49 ..
drwxrwxr-x.  2 llin llin   21 Mar 28 21:49 rm_test
[llin@localhost ~]$ cleartrash 
clear sure?[y/n]y
[llin@localhost ~]$ rl
总用量 4
drwxrwxr-x.  2 llin llin    6 Mar 28 21:50 .
drwx------. 26 llin llin 4096 Mar 28 21:49 ..






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值