在Linux上制作回收站

找回遗失的美好

相信很多小伙伴在学习Linux的时候,对于使用rm -f 总有过一种小心翼翼的感觉,相对于我们熟悉的Windows来说,它是没有回收站机制的,既然这样,我们就自己做一个。
减少“尿素”输出,我们直接开机怼。

  • 其实很简单,我们只需要修改.bashrc这个文件即可。

    PS: .bashrc,主要保存个人的一些个性化设置,命令的别名、路径等等。

[root@hello ~]# vim ~/.bashrc

# .bashrc

# User specific aliases and functions

alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

#从这里开始修改,内容一样
mkdir -p ~/.trash #创建.trash
alias rm=trash #重定义,将rm重新定义为trash
alias r=trash  #重定义,将r重新定义为trash
alias rl='ls ~/.trash/' #重定义,将ls ~/.trash/重新定义为rl
alias ur=undelfile #重定义,将undelfile重新定义为ur

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

trash()
{
    mv -i $@ ~/.trash/ #将rm/r之后所有的文件移动到 .trash 目录下,类似回收站功能。-i 提示有同名文件是否覆盖。
}

cleartrash()
{
    read -p "clear sure?[n]" confirm
    [ $confirm == 'y' ] || [ $confirm == 'Y' ] && /bin/rm -rf ~/.trash/*
    #如果回收站里文件太多了,使用 cleartrash 命令清空回收站。即调用 /bin/rm 命令将 .trash 目录清空。
}

~
~
~
~
~
~
~
~
~
"~/.bashrc" 34L, 474C                
  • 修改完成后,我们需要让其生效。
[root@hello ~]# source ~/.bashrc

到这里,我们的手工回收站已经上架了。
是骡子是马,我们直接牵出来遛遛就知道了。

  • 测试:先创建一个新文件,file8,接着用 rm 将其删除,接下来我们再从回收站把它捞回来。

rl查看回收站,ur filename 恢复文件

[root@hello ~]# touch file8
[root@hello ~]# ls
123abcd.txt      ddd        file8                                 test1
124abcd.txt      ddd1       file.txt                              test1.txt
3abcd.txt        file1      MySQL-client-5.6.48-1.el7.x86_64.rpm  test.sh
aa2              file1.txt  MySQL-server-5.6.48-1.el7.x86_64.rpm  test.txt
aaa              file2.txt  Pabcd.txt                             user.txt
aaa1             file5      passwd.txt
anaconda-ks.cfg  file6      scanhost.sh
[root@hello ~]# rm file8
[root@hello ~]# ls
123abcd.txt      ddd        file.txt                              test1.txt
124abcd.txt      ddd1       MySQL-client-5.6.48-1.el7.x86_64.rpm  test.sh
3abcd.txt        file1      MySQL-server-5.6.48-1.el7.x86_64.rpm  test.txt
aa2              file1.txt  Pabcd.txt                             user.txt
aaa              file2.txt  passwd.txt
aaa1             file5      scanhost.sh
anaconda-ks.cfg  file6      test1
[root@hello ~]# rl
file6  file8
[root@hello ~]# ur file8
[root@hello ~]# ls
123abcd.txt      ddd        file8                                 test1
124abcd.txt      ddd1       file.txt                              test1.txt
3abcd.txt        file1      MySQL-client-5.6.48-1.el7.x86_64.rpm  test.sh
aa2              file1.txt  MySQL-server-5.6.48-1.el7.x86_64.rpm  test.txt
aaa              file2.txt  Pabcd.txt                             user.txt
aaa1             file5      passwd.txt
anaconda-ks.cfg  file6      scanhost.sh
[root@hello ~]# rl
file6
[root@hello ~]#
[root@hello ~]# rl #后面我往回收站又扔了多点东西
a  file5  file6  file8
[root@hello ~]# cleartrash #清除文件夹
clear sure?[n]y #询问
[root@hello ~]# rl
[root@hello ~]#

PS:对文件内容没有影响。对目录也是同样可以使用。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值