0x01 rm 命令
rm 是Linux中的删除命令,这个命令可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除掉。对于链接文件,只是删除整个链接文件,而原有文件保持不变。
使用rm命令要格外小心,因为文件一旦删除了,就无法再恢复它。在删除文件之前,要确认清楚后再执行。
0x02 rm 语法
rm 命令有选项参数可供选择,使用时要遵循语法规则;
rm [选项] [参数]
0x03 rm 选项
以下是长用到的选项,如果需要查看更多的说明可以执行 rm --help 来查看;
-d # 直接把欲删除的目录的硬连接数据删除成0,删除该目录; -f # 强制删除文件或目录; -i # 删除已有文件或目录之前先询问用户; -I # 删除三个以上文件前或递归删除时提示一次;比-i更少的侵入性,同时仍然提供了对大多数错误的保护 -r或-R # 递归处理,将指定目录下的所有文件与子目录一并处理; --preserve-root # 不对根目录进行递归操作; -v # 显示指令的详细执行过程。
0x04 rm 危险
在操作 rm -rf 这个命令时一定要小心,要不然真要跑路了。据说有很多运维都是因为这个命令跑路的。规避这个危险命令可以先从习惯开始,可以尝试先使用mv命令然后在定期清理。还可以使用-i选项不过会很繁琐,估计一般都不会使用这个选项。如果一定要使用rm -rf 可以尝试用以下规范来使用,尽量避免直接使用如:rm -rm * /home/wwwroot/test 这样直接的命令;
cd /home/wwwroot/test && rm -rf * # 这样的命令格式好处是减少误操作如果前面的cd命令路径错误则不会执行rm -rf * 命令;
下面的这条命令是一个错误的演示,如果手滑打了一个空格这种情况并不少见或者多一个字母导致路径改变了,删除了不是想要删除的路径,后果不用想了。下面的命令执行后会直接删除 / 根目录,就因为多了一个空格,实际执行了 rm -rf * / 这个命令;
rm -rf * / home/wwwroot/test # 这是个错误的演示,如果执行了就会直接删除 / 根目录;