zl程序教程

您现在的位置是:首页 >  系统

当前栏目

linux问题——linux下误用rm删除文件解决方案

Linux文件解决方案 删除 rm 问题
2023-09-11 14:20:02 时间

rm介绍

Linux rm命令用于删除一个文件或者目录。

-i 删除前逐一询问确认。

-r 就是向下递归,不管有多少级目录,一并删除。

-f 即使原档案属性设为唯读,也直接强行删除,不作任何提示,无需逐一确认。

起因:误用rm -rf /home/user删除文件

博主昨日误用了rm -rf /home/user,

user@asdlfkja213kjk:~$ rm -rf /home/user

然后,就出现了user自己删除了user。。。
之前安装在user用户上的东西就全留在回忆里了。。。

经过:就在第二天,突然降临了一篇可预防的文章

rm命令,给你一个反悔的机会

按照文章中的步骤,就开干!

在~/.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和r进行重定义,将再用rm命令删除的文件放到.trash中;
将ur定义为把.trash下的文件还原到原处;
将rl定义为查看.trash目录下的文件;
将cleartrash定义为清空.trash中的文件。

结果:实验一下

先生效.bashrc文件

source ~/.bashrc

使用rm和r删除文件实验一下

user_1@iZ2zeirzgawl4hu0mpb3g7Z:~$ touch file1 file2 file3
user_1@iZ2zeirzgawl4hu0mpb3g7Z:~$ ls
file1 file2 file3
user_1@iZ2zeirzgawl4hu0mpb3g7Z:~$ rm file1 file2
user_1@iZ2zeirzgawl4hu0mpb3g7Z:~$ r file3

使用rl查看一下

user_1@iZ2zeirzgawl4hu0mpb3g7Z:~$ rl
file1  file2  file3

使用ur还原一下

user_1@isdafsadsad:~$ ur file1
user_1@isdafsadsad:~$ ls
file1  file2  file3

使用cleartrash清空一下

user_1@isdafsadsad:~$ cleartrash
clear sure?[n]y
user_1@isdafsadsad:~$ rl
user_1@isdafsadsad:~$

Success!

拓展知识:

什么是 .bashrc,为什么要编辑 .bashrc?

环境变量配置文件

alias命令_Linux alias命令:给命令定义别名

linux下中的 rm 命令选项-i 什么意思

Linux中变量 $# $1 $2 $* $$ $?等含义