linux的rm命令详解
发布网友
发布时间:2022-04-25 05:58
我来回答
共2个回答
热心网友
时间:2022-05-26 07:55
Linux rm,英文全拼:remove,该命令用于删除一个文件或者目录。
Linux
rm命令是一个非常强大的删除命令,它可以永久性地删除文件系统中指定的文件或目录。在使用rm命令删除文件或目录时,系统不会产生任何提示信息。
语法
rm [options] name...
参数
-i 删除前逐一询问确认
-f 即使原档案属性设为唯读,亦直接删除,无需逐一确认
-r 将目录及以下之档案亦逐一删除
注意:rm命令是一个具有破坏性的命令,因为rm命令会永久性删除文件或目录,这就意味着,如果没有对文件或目录进行备份,一旦使用rm命令将其删除,将无法恢复。因此,尤其在使用rm命令删除目录时,要非常非常谨慎。
热心网友
时间:2022-05-26 09:13
rm: 可以备份,尽量不要删除,比删除更好的是重命名 -->只删除文件链接,重启、重新写入后回收
删除文件时,使用绝对路径或者进入到目标路径下后使用删除命令 –> 禁止使用rm –rf ./XXX文件【少个点就是根目录了】
-r : 删除文件夹
-f : 强制删除文件
rm命令删除文件的原理
文件删除原理: Linux通过文件link的数量控制文件的删除,只有当一个文件不存在任何link的时候且没有程序调用的时候,文件才会被真正删除。
就rm命令而言,就是减少磁盘引用计数i_link(文件到inode的链接数量);inode节点指向存储数据的block,删除文件并不是清除inode和block,而是将文件的硬链接为0,引用计数为0 才能删除文件。《Linux就该这么学》学习更多linux知识
注:如果有新的数据存储或者系统通过类似fsck命令做磁盘检查的时候,被删除的数据块和目录会被释放,数据无法找回
文件删除的条件:
i_nlink 文件的硬链接数量,磁盘的引用计数器
i_count 内存引用计数(一个文件被几个程序调用,有一个程序使用i_count + 1 )
i_link = 0 && i_count =0
删除一个文件,也是删除上一级目录的block里面的文件名