linux (rm指令) 及误删除解决

今天在群里看见这一幕:

看到这儿,我们学习一下 这个RM指令

rm命令可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除掉。对于链接文件,只是删除整个链接文件,而原有文件保持不变。

注意:使用rm命令要格外小心。因为一旦删除了一个文件,就无法再恢复它。所以,在删除文件之前,最好再看一下文件的内容,确定是否真要删除。rm命令可以用-i选项,这个选项在使用文件扩展名字符删除多个文件时特别有用。使用这个选项,系统会要求你逐一确定是否要删除。这时,必须输入y并按Enter键,才能删除文件。如果仅按Enter键或其他字符,文件不会被删除。

语法

rm (选项)(参数)

选项

-d:直接把欲删除的目录的硬连接数据删除成0,删除该目录;
-f:强制删除文件或目录;
-i:删除已有文件或目录之前先询问用户;
-r或-R:递归处理,将指定目录下的所有文件与子目录一并处理;
--preserve-root:不对根目录进行递归操作;
-v:显示指令的详细执行过程。

参数

文件:指定被删除的文件列表,如果参数中含有目录,则必须加上-r或者-R选项。

实例

交互式删除当前目录下的文件test和example

rm -i test example
Remove test ?n(不删除文件test)
Remove example ?y(删除文件example)

删除当前目录下除隐含文件外的所有文件和子目录

# rm -r *

即:rm -rf /* (是强制删除根目录及全部的子文件)

解决办法(解决误删除的办法集合):

  为了避免误删根目录,或者重要的文件,整理了以下方法:

1、safe-rm

  safe-rm 是一个开源软件用来替代不太安全的rm,可以在/etc/safe-rm.conf中配置路径黑名单,定义哪些不能被safe-rm删除。

可以将 safe-rm 更名为 rm 并放在 $PATH 中比 原rm 程序靠前的位置。一些脚本中使用完全路径/bin/rm则不会受此影响。 

$ rm -rf /etc/
safe-rm: skipping /etc/

官方地址:http://freecode.com/projects/safe-rm,ubuntu可以直接apt-get安装,centos要下载源码安装。

2、建立回收站机制

  它并不真正执行删除操作,而是将文件移动到一个特定目录,可以设置定时清楚回收站,或者在回收站里面的文件大小达到一定容量时(或者用时间做判断)执行删除操作以腾出空间。

可以写个shell脚本替换rm命令,或者在需要删除文件的时候使用mv命令将文件移动到回收站。  

1) 在/home/username/ 目录下新建一个目录,命名为:.trash

2)在/home/username/tools/目录下,新建一个shell文件,命名为: remove.sh

TRASH_DIR="/home/username/.trash"  

for i in $*; do
    STAMP=`date +%s`
    fileName=`basename $i`
    mv $i $TRASH_DIR/$fileName.$STAMP
done  

3)修改~/.bashrc, 增加一行

alias rm="sh /home/username/tools/remove.sh"

用我们自建的remove.sh替代rm命令

4)设置crontab,定期清空垃圾箱,如:

0 0 * * * rm -rf /home/username/.trash/*

每天0点清空垃圾箱

5)source ~/.bashrc 使替换立即生效

3、注意脚本中rm -rf 变量的使用

  在脚本尽量不要使用 rm -rf $FOO/, 请使用 rm -rf $FOO;另外删除尽量不要写相对路径,不要带变量。

4、根文件系统设置只读挂载

noauto,ro

5、各种备份

  可以异地远程备份重要的数据,采用dump的增量备份机制,LVM快照,虚拟化环境中的快照、raid5等等。

附录:How do I prevent accidental rm -rf /*?

关注博客,每天进步一小点! 嘿嘿~~~



原文地址:https://www.cnblogs.com/rianley/p/9259008.html

时间: 2024-11-23 22:37:20

linux (rm指令) 及误删除解决的相关文章

linux rm 删除指令新用

最近在导师写网络带宽分配的仿真程序,期间产生了大量临时文件,怎么用rm指令删除这些临时文件而不删除其他特定的文件呢? 比如下面是临时文件: temp101 temp102 temp103 temp104 temp105 temp201 temp202 temp203 temp204 temp205 temp301 temp302 temp303 temp304 temp305 temp401 temp402 temp403 temp404 temp405 temp501 temp502 temp

Linux shell 指令

Linux shell指令运行的原理: Linux严格意义上说的是一个操作系统,我们称之为"核心(kernel)" ,但我们一般用户,不能直接使用kernel.而是通过 kernel的"外壳"程序,也就是所谓的shell,来与kernel沟通.shell对于Linux,有相同的作用,主要是对我们的指令进行解析,解析指令给Linux内核.反馈结果在通过内核运行出结果,通过shell解析给用户. ls指令 -a 列出目录下的所有文件,包括以.开头的隐含文件. cd命令

linux rm cp mv 命令实例

删除复制移动文件命令 Linux代码 rm -rf /file -r:递归处理参数-f:强制删除所有文件 Linux代码 cp /test1/file1 /test3/file2 将file1复制到test3下,并改名为file2 Linux代码 cp -a test test1 将test目录下的所有子目录复制到test1下 Linux代码 mv /test1/file1 /test2/test2 将file1移动到test2下,并改名为test2 cp命令 该命令d功能匙将给出d文件或目录拷

Linux操作指令

Linux操作指令 ctrl+alt+F3进入文本界面 ctrl+alt+F1进入桌面界面 mkdir创建文件命令 vi编辑文件命令 cd切换目录命令 cd..返回上级目录 ls查看文件夹下文件命令 wq保存 q!取消 setup进入设置(关闭防火墙设置IP地址) reboot重启系统 poweroff -n关闭系统 vi /etc/selinux/config进入该文件(关闭防火墙) 更改SELINUX=disabled cat 查看命令 移动文件命令 mv 移动文件:mv 文件名 移动目的地

Linux创建垃圾回收站,解决误删操作的烦恼

Linux创建垃圾回收站,解决误删操作的烦恼 --delete安全的删除命令 废话少说直接进入主题 1.创建一个简单的delete命令脚本(因阿诺的英语太渣所用的中文字符集) [[email protected] ~]# vim delete #!/bin/bash #只为一诺 #将删除的文件回收到家目录下的回收站--hsz hsz=~/hsz if [ ! -d $hsz ] then mkdir $hsz fi if [ $# -eq 0 ] then echo "提示用法: delete

Linux常用指令和系统管理命令总结

Linux常用指令: ls 显示文件或目录 ls -l 列出文件详细信息 ls -a 列出当前目录下所有文件或目录,包括隐藏的 ls -al 显示详细文件信息,包括隐藏的文件 mkdir 创建目录 mkdir -p 创建目录,若无父目录,则创建父目录 cd 切换目录 touch 创建空文件 echo 创建带有内容的文件 cat 查看文件内容 cp 拷贝 mv 移动或者重命名 rm 删除文件 rm -r 递归删除,可删除子目录及文件 rm -f 强制删除 rm -rf 强制递归删除 find 在文

linux学习(四)-----linux常用指令

touch 指令 touch 指令创建空文件 基本语法 touch 文件名称 应用实例 案例 1: 创建一个空文件 hello.txt cp 指令 cp 指令拷贝文件到指定目录 基本语法 cp [选项] source dest 常用选项 -r :递归复制整个文件夹 应用实例 案例 1: 将 /home/aaa.txt 拷贝到/home/bbb 目录下[拷贝单个文件] 案例 2: 递归复制整个文件夹,举例将/home/test 整个目录拷贝到 /home/zwj 目录 使用细节 强制覆盖不提示的方

Sublime text 2 for linux 中文输入法无法使用的解决方法

Sublime Text 2 Linux 版一直都没有解决中文输入这个问题. 目前中文输入有三种方案,分别是: 方案一:使用小小输入法 小小输入法新版本已经支持再Sublime Text 下输入中文 关于小小输入法的安装以及简介: http://blog.ubuntusoft.com/small-input.html http://forum.ubuntu.org.cn/viewtopic.php?t=226677 方案二:打开另外一个可以输入中文的输入框,输入中文后拷贝进Sublime Tex

Linux基本指令

1.Linux常用的查找命令 在Linux下经常会使用到两个查找命令grep和find.其中grep命令常用作包含某个字符串的文件:而find常用于查找匹配制定文件名的文件. grep命令 其实grep命令是Linux当中一个非常强大的搜索工具,这里之作简单的做简单的字符串匹配查找的相关介绍,大牛勿喷呀,方便日后查阅写给自己的. grep 要查找的字符串 查找路径 要查找的文件列表(用空格隔开) 参数     //grep查找字符串的格式 常用参数:-R 递归查找 -n 显示匹配的文件行号 eg