美文网首页
给你一个反悔的机会

给你一个反悔的机会

作者: DBA成长之路 | 来源:发表于2019-03-22 22:27 被阅读0次

Linux 下 rm 命令是表示删除一个文件,而Linux是没有回收站机制,所以文件一旦删除的话,就彻底从磁盘上删除了。而很多人喜欢加上 -f 选项,是代表强制的意思,更暴力的是删除文件夹的时候使用 rm -rf 命令,这样一来,文件夹本身,以及文件夹下的子子孙孙,都一了百了了。

既然罪魁祸首是 rm 命令,那我们就对这个命令进行改造。在Linux下对命令进行重定义是使用 alias 命令,修改的是 .bashrc 文件,即:
vim ~/.bashrc
复制代码
在文件尾部,我们添加以下几句代码:
mkdir -p ~/.trash

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

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

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

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

在这里,我们是在家目录下建立一个 .trash 的隐藏文件夹,作为回收站。然后,我们对 rm 命令进行重定义。当我们执行 rm 或者 r 的时候,将执行 trash 函数。而在 trash 函数里,只做一件事:
mv -i $@ ~/.trash/
复制代码
就是将 rm 之后所有的文件移动到 .trash 目录下(即模拟丢进回收站)。-i 选项表示如果 .trash 目录有同名文件的话,将提示是否覆盖。
我们将 rl 定义为 ls ~/.trash/ ,也就是说,我们可以通过 rl 来查看 .trash 目录下的文件,即被「删除」的文件。
如果要还原文件,可以执行 ur ,而 ur 将执行 undelfile 函数。在 undelfile 里,又将 ur 之后的文件从 .trash 目录移回到原目录,从而实现文件删除还原。
当过了一段时间后,回收站里文件太多了,我们可以使用 cleartrash 命令清空回收站。它将执行同名函数,调用 /bin/rm 命令将 .trash 目录清空。
.bashrc 文件修改完毕之后,我们要让它生效:
source ~/.bashrc
复制代码
我们来实际体会一下:
删除文件

alvin@alvin-pc:~/test$ touch file1 file2 file3
alvin@alvin-pc:~/test$ ls
file1  file2  file3
alvin@alvin-pc:~/test$ rm file1 file2 
alvin@alvin-pc:~/test$ rm file3

查看回收站文件

alvin@alvin-pc:~/test$ rl
file1  file2  file3

还原被删除的文件

alvin@alvin-pc:~/test$ rl
file1  file2  file3
alvin@alvin-pc:~/test$ ur file1
alvin@alvin-pc:~/test$ ur file2
alvin@alvin-pc:~/test$ ur file3
alvin@alvin-pc:~/test$ ls
file1  file2  file3
alvin@alvin-pc:~/test$ rl
alvin@alvin-pc:~/test$ 

清空回收站

alvin@alvin-pc:~/test$ rm file1 file2 file3
alvin@alvin-pc:~/test$ rl
file1  file2  file3
alvin@alvin-pc:~/test$ cleartrash
clear sure?[n]y
alvin@alvin-pc:~/test$ rl
alvin@alvin-pc:~/test$

通过以上这些步骤,我们虽然可以实现一个回收站的功能,但实际的工作中,我们还是要养成定时备份的习惯,这样即使有误操作,我们也可以将损失降到最低。

相关文章

  • 给你一个反悔的机会

    Linux 下 rm 命令是表示删除一个文件,而Linux是没有回收站机制,所以文件一旦删除的话,就彻底从磁盘上删...

  • 给你一个反悔的机会

    Linux 下 rm 命令是表示删除一个文件,而Linux是没有回收站机制,所以文件一旦删除的话,就彻底从磁盘上删...

  • 【感恩日语】286篇,还有80天

    不管你是珍惜时间,还是虚度光阴,时光总是自顾自地前行,不给你留下任何反悔的机会。 2020年已经过了285天,还有...

  • 改头像

    新年新气象,今天把头像改了。这次是真改,不管结果知何也不反悔,因为我彻底把原来的相片删了,不给自己留反悔的机会。 ...

  • 如果给你一次可以反悔的机会,你会做什么?

    最新的微信可以更改微信号了,这对很多跟来讲是梦寐以求的,当年的微信号或许是一段感情的开始,或许是自己励志的符号,有...

  • 2018-03-25

    给我一个机会,我就给你一个难忘的体验 给我一个机会,给你一次难忘的体验

  • 反悔又反悔

    我曾以为我不在意的,能接受的,可以不放在心上的,都成了我心中的一根刺,时时刻刻折磨着我,让我笑得疲惫,喜欢的艰难。...

  • 微信给了我们说话反悔的机会

    随着时代发展,行业竞争,各种聊天软件层出不穷,最开始做支付功能的支付宝也慢慢有了聊天功能,但人们用得最普遍...

  • 去过自己选择的人生

    “人生的每个抉择都像是一个赌局,输赢都是自己的。不同的是赌注的大小,选择了就没有反悔的机会~” 今天给大家讲几个故...

  • 43岁舒淇暂停演员生涯:所有透支,都有可怕的代价

    生命是一条单行道,没有后悔的机会,没有重来的可能,等疾病站在我们面前,我们没有机会,也没有力量反悔。 前年,演员舒...

网友评论

      本文标题:给你一个反悔的机会

      本文链接:https://www.haomeiwen.com/subject/ezmdvqtx.html