找回遗失的美好
相信很多小伙伴在学习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:对文件内容没有影响。对目录也是同样可以使用。