Linux rm 删除命令
March 17, 2018
当我们在Linux系统下,如果要删除某个特定的文件或者特定目录下的特定文件,那么首先会想到的是Linux系统的系统命令rm。 本文将会对rm删除文件命令的使用方法做详细的介绍,包括rm命令的命令格式,包含的命令选项,并且通过实例来介绍rm命令的不同选项。
Table of Contents
Linux rm 命令介绍
rm 命令在英语里就是remove单词的缩写,就是删除的意思, 该命令主要用来删除linux文件系统下的文件。当使用rm命令的递归参数-rf的话,也可用来删除目录文件。
我们可以在命令行下通过rm命令来删除指定的每一个文件。 默认情况下,该命令不会删除目录文件。
Linux rm命令删除文件的处理过程只是删除文件所对应的inode链接,但并不会删除或者清空文件的存储数据,当删除完成后,系统会将该文件的存储空间标记为空闲状态,这样就别的程序就可以将数据写入这个空间里了。 也就是说,当你删除一个文件的时候,文件数据并没有被改变,只是不会再关联到这个文件名了。
因为文件数据本身并没有被销货,所以当rm命令将指向数据区域的指针删除掉后, 该数据就不能再被访问了, 而且也没法注销该删除操作。不像我们在windows系统里, 我们可以去回收站里将删除的文件恢复到以前的存储位置。
注意: 如果你想彻底的将文件数据从磁盘里删掉,我们可以通过使用Linux系统的shred命令将指定文件所在存储数据测试重新覆盖,这样数据就彻底无法再恢复了。
Linux rm 命令格式及参数
rm [参数] {文件名}
参数如下:
-f, –force 强制删除文件, 不做任何删除操作的提示 -I, –interactive 进行交互式的删除操作 -r, -R, –recursive 将对指定目录中的所有目录或子目录进行递归性的删除 -v, –verbose 显示删除操作的详细信息 –help 显示命令的使用帮助信息 -d, 删除空目录文件,rm –d 和rmdir命令的效果是一样的。
对于-I选项,当rm 命令在删除文件的时候,如果指定的文件超过3个话,rm 命令在删除文件前,会做出删除提示。
Linux rm命令删除目录文件
默认情况下,rm命令不会删除目录文件的。 但是如果使用了-r/-R/–recursive 选项的话, rm命令将会删除所有匹配到的文件或者目录。
如果指定的目录是个空目录,那么可以使用rm命令的-d/–dir 参数来删除。
如果需要删除当前目录下的空目录文件fio1,执行下面的命令:
#rm –d fio1
命令输出如下:
root@devops:~/osetc# rm fio1/ rm: 无法删除'fio1/': 是一个目录 root@devops:~/osetc# rm -d fio1/ root@devops:~/osetc#
如果要删除目录下的所有普通文件或者子目录文件,并不做删除确认提示,可以使用rm命令的-rf选项做递归删除,执行下面命令:
#rm –rf fio
Linux rm命令删除普通文件
如果要删除当前目录下的普通文件 fio.txt, 当要删除的文件是写保护的,系统会做出删除确认提示,执行下面的命令:
#rm fio.txt
命令输出如下
root@devops:~/osetc# ll 总用量 16 drwxr-xr-x 2 root root 4096 3月 17 22:01 ./ drwx------ 6 root root 4096 3月 15 21:48 ../ -rw-r--r-- 1 root root 5 3月 15 21:24 fio5.txt -r--r--r-- 1 root root 5 3月 17 22:01 fio.txt root@devops:~/osetc# rm fio.txt root@devops:~/osetc#
Linux rm 命令强制删除文件
如果想在删除文件的时候,不想有任何确认提示,那么可以使用rm命令的-f选项,执行下面的命令:
#rm –f fio.txt
命令输出如下:
root@devops:~/osetc# ls fio5.txt fio.txt root@devops:~/osetc# rm -f fio.txt root@devops:~/osetc# ls fio5.txt root@devops:~/osetc#
Linux rm 命令结合通配符删除所有.txt 文件
如果想删除目录下所有的文件名以.txt 结尾的文件,那么可以使用Linux下通配符来匹配要删除的文件,然后结合rm命令进行删除。执行下面的命令:
# rm *.txt
命令输出如下:
root@devops:~/osetc# ls fio1.txt fio2.txt fio3.txt root@devops:~/osetc# rm *.txt root@devops:~/osetc# ls root@devops:~/osetc#
Linux rm 命令交互式删除文件
如果想在删除文件的时候,让系统做出删除文件的确认提示,这样可以做交互式的确认,当输入Y的时候,就进行文件删除,当输入N的时候,文件不会被删除。 可以使用linux rm 命令的-i选项,执行命令如下:
# rm –i fio5. Txt
命令输出如下:
root@devops:~/osetc# ls fio5.txt root@devops:~/osetc# rm -i fio5.txt rm:是否删除普通文件 'fio5.txt'? y root@devops:~/osetc# ls root@devops:~/osetc#
Linux rm 命令删除文件时并排除特定的某个文件或某类文件
当我们在删除某类文件的时候,想排除特定的文件,此时如果简单的执行rm命令是无法完成的。 我们需要通过结合其它的Linux命令,比如grep命令来实现。 比如我们先删除目录下的除了fio.txt文件的所有.txt文件,那么可以执行下面的命令:
# rm `ls *.txt|grep –v fio.txt`
命令输出如下:
root@devops:~/osetc# ls fio1.txt fio2.txt fio3.txt root@devops:~/osetc# rm -i `ls *.txt| grep -v fio1.txt` rm:是否删除普通文件 'fio2.txt'? y rm:是否删除普通文件 'fio3.txt'? y root@devops:~/osetc# ls fio1.txt
Linux rm命令和unlink命令的不同之处
Linux里rm 命令 和unlink 命令主要功能都是用来删除指定的文件。 但是unlink命令只能同时删除一个文件,而且不能删除目录文件,并且该命令没有任何的附加选项。只是用来通过调用unlink函数来删除指定的一个文件。而在大多数版本的linux系统中的rm命令包含了我们上面介绍的参数,并可以做交互式操作,安全检查,条件删除以及递归操作等。
root@devops:~/osetc# unlink fio1.txt fio2.txt unlink: 额外的操作数 "fio2.txt" Try 'unlink --help' for more information.
99%的人还阅读了:
0 Comments