linux 初学者,就 rm -rf /* 展开了一些思考,然后整理了一下 rm 命令——在本文后面一点的模块。
1、前言
老程序员谈之色变,新手们(比如我)也肯定听说过或者知道这个命令的威力。轻则职位不保,重则倾家荡产(玩笑夸张哈)。
那么你知道 rm -rf / , rm -rf * 和 rm -rf /*(⚠️) 这三条命令的 区别 吗?笑归笑,听完梗之后,我们更需要理性地思考问题。
这篇文章的目的是给大家(linux初学者)总结学习 linux rm 命令,然后就是做真正的项目的时候千万不要手抖打错 rm 命令。
2、结论
慎用 rm ⚠️ 勿试 rm -rf /* 。用 rm 删除的文件难以找回,可能会造成不可挽回的损失。在一个项目中一般是 建立一个 delete 文件夹,然后使用 mv 指令移走文件,定时对 delete 进行删除。
不要以身试险啦,这里给出结论。
rm -rf /D:删除指定目录 D 以及其所有子目录和文件
rm -rf * :删除当前文件夹下的所有文件而保留该文件夹
⚠️rm -rf /:删除一整个根目录 / 有些版本的系统会提示你这很危险,但有的不会!
这会删除绝大部分的文件,只要权限足够都会删。所以有时候会发现执行完这个命令后,还有一些残余的目录和文件。但其实你的文件已经不完整了,如果在linux系统下,会导致命令丢失无效(比如cd,ls)。
⚠️rm -rf /*:直接强制删除一整个根目录 / ,数据无价,没有后悔药
3、详解 rm 命令
(1) 命令格式
rm [params] [file_name]
rm [params] [dir_name]
(2) 相关参数--params
① 无参 删除当前目录下的指定文件(但不能删除空目录 )
② rm -d : -d 指 --dir,删除空目录,同 rmdir
③ rm -f : -f 指 --force,强制删除,忽略系统提示,即使该文件不存在
④ rm -i : -i 指 --interactive,顾名思义,交互式删除,系统将询问是否确认删除
⑤ rm -r (-R):-r 指 --recursive, 指将当前目录和全部子目录及文件递归删除
⑥ rm -v : -v 指 --verbose,显示删除的步骤信息
4. 实例
(1) 删除空目录
例如空目录 D,用 rm
和 rm -f
删除均无效,显示 rm: cannot remove 'D': Is a directory
以下均能解决问题
rm -d D
rm -r D
rm -rf D
(2) 删除指定目录下的所有目录/文件而保留该目录
rm -rf *
(3) 递归删除指定目录下所有文件及子目录文件,然后显示删除信息
rm -d -v D
难免出错,欢迎指正!
整理不易,觉得有用点个赞吧