rm命令
在linux中创建文件很容易,系统中随时会有文件变得过时且毫无用处。用户可以用rm命令将其删除。该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是删除了链接,原有文件均保持不变。
rm命令的一般形式为:
rm [选项] 文件…
如果没有使用- r选项,则rm不会删除目录。
该命令的各选项含义如下:
- f 忽略不存在的文件,从不给出提示。
- r 指示rm将参数中列出的全部目录和子目录均递归地删除。
- i 进行交互式删除。
使用rm命令要格外小心。因为一旦一个文件被删除,它是不能被恢复的。例如,用户在输入cp,mv或其他命令时,不小心误输入了rm命令,当用户按了回车键并认识到自己的错误时,已经太晚了,文件已经没有了。为了防止此种情况的发生,可以使用rm命令中的 i选项来确认要删除的每个文件。如果用户输入y,文件将被删除。如果输入任何其他东西,文件将被保留。在下一个例子中,用户要删除文件test和 example。然后会被要求对每个文件进行确认。用户最终决定删除example文件,保留test文件。
代码如下 | 复制代码 |
$ rm – ii test example |
某目录下文件较多,考虑一次性全部删除。
代码如下 | 复制代码 |
[root@hx relate]# rm * -f rm: invalid option -- ? Try `rm ./-昆明中国_relate.txt' to remove the file `-300245303367326320271372_relate.txt'. Try `rm --help' for more information. |
这个文件删除不掉?
rm --help看了下帮助
代码如下 | 复制代码 |
By default, rm does not remove directories. Use the --recursive (-r or -R) option to remove each listed directory, too, along with all of its contents. To remove a file whose name starts with a `-', for example `-foo', rm ./-foo |
根据提示:
代码如下 | 复制代码 |
[root@hx relate]# rm ./-昆明中国_relate.txt rm: remove regular file `./-300245303367326320271372_relate.txt'? y |
把这个文件删除了。
附:批量删除某目录下的空文件(0字节的文件)
代码如下 | 复制代码 |
find . -name "*" -type f -size 0c | xargs -n 1 rm -f |
修改对应的 -size 参数,可以删除指定大小的文件,例如要删除1k大小的文件:
代码如下 | 复制代码 |
find . -name "*" -type f -size 1024c | xargs -n 1 rm -f |
但注意不要用 -size 1k,这个得到的是占用空间1k,不是文件大小1k的
如果只要删除文件夹或者名字连接等,可以相应的改 -type 参数,具体细节见 man find。
RM与RMDIR的区别是rm可以删除非空目录 ,非空目录用rmdir是删除不了的,rm -rf 非空目录名 即可