linux常用命令

文件和目录操作命令-06-rm命令

2020-11-14  本文已影响0人  夏胖运维

1. 命令介绍

rm是常用的命令,该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是删除了链接,原有文件均保持不变。

rm是一个危险的命令,使用的时候要特别当心,尤其对于新手,。因为一旦删除了一个文件,就无法再恢复它。否则整个系统就会毁在这个命令(比如在/(根目录)下执行rm * -rf)。所以,我们在执行rm之前最好先确认一下在哪个目录,到底要删除什么东西,操作时保持高度清醒的头脑。

2. 命令格式

rm [OPTION]... FILE...

3. 命令功能

删除一个目录中的一个或多个文件或目录,如果没有使用 -r 选项,则rm不会删除目录。

4. 常用选项

选项 含义
-d 直接把欲删除的目录的硬连接数据删除成0,删除该目录;
-f 强制删除文件或目录;
-i 删除已有文件或目录之前先询问用户;
-r或-R 递归处理,将指定目录下的所有文件与子目录一并处理;
-v 显示指令的详细执行过程。

5. 常用范例

  1. 删除文件file,系统会先询问是否删除。
[root@localhost ~]# ll
total 4
-rw-------. 1 root root 1482 May 24 18:16 anaconda-ks.cfg
-rw-r--r--  1 root root    0 Nov 13 17:57 test01.log
-rw-r--r--  1 root root    0 Nov 13 17:57 test02.log
drwxr-xr-x. 7 root root   76 Nov 12 18:28 test1
drwxr-xr-x. 3 root root   20 Nov 12 18:26 test2
drwx------. 2 root root    6 Nov 12 18:31 test3
[root@localhost ~]# rm test01.log 
rm: remove regular empty file ‘test01.log’? y
[root@localhost ~]# ll
total 4
-rw-------. 1 root root 1482 May 24 18:16 anaconda-ks.cfg
-rw-r--r--  1 root root    0 Nov 13 17:57 test02.log
drwxr-xr-x. 7 root root   76 Nov 12 18:28 test1
drwxr-xr-x. 3 root root   20 Nov 12 18:26 test2
drwx------. 2 root root    6 Nov 12 18:31 test3

输入rm log.log命令后,系统会询问是否删除,输入y后就会删除文件,不想删除则数据n。

为什么执行rm命令是没有加-i选项也会提示是否删除呢?

这是因为现在执行的rm命令是使用alisa命令查看会发现alias rm='rm -i',也就是我们现在执行的 rm 命令就是添加了-i选项的命令,如果使用/bin/rm执行删除则不会后提示

[root@localhost ~]# ll
total 4
-rw-------. 1 root root 1482 May 24 18:16 anaconda-ks.cfg
-rw-r--r--  1 root root    0 Nov 13 17:57 test02.log
drwxr-xr-x. 7 root root   76 Nov 12 18:28 test1
drwxr-xr-x. 3 root root   20 Nov 12 18:26 test2
drwx------. 2 root root    6 Nov 12 18:31 test3        
[root@localhost ~]# /bin/rm test02.log 
[root@localhost ~]# ll
total 4
-rw-------. 1 root root 1482 May 24 18:16 anaconda-ks.cfg
drwxr-xr-x. 7 root root   76 Nov 12 18:28 test1
drwxr-xr-x. 3 root root   20 Nov 12 18:26 test2
drwx------. 2 root root    6 Nov 12 18:31 test3
  1. 强行删除file,系统不再提示。
[root@localhost ~]# touch test0{1..3}.log
[root@localhost ~]# ll
total 4
-rw-------. 1 root root 1482 May 24 18:16 anaconda-ks.cfg
-rw-r--r--  1 root root    0 Nov 14 23:09 test01.log
-rw-r--r--  1 root root    0 Nov 14 23:09 test02.log
-rw-r--r--  1 root root    0 Nov 14 23:09 test03.log
drwxr-xr-x. 7 root root   76 Nov 12 18:28 test1
drwxr-xr-x. 3 root root   20 Nov 12 18:26 test2
drwx------. 2 root root    6 Nov 12 18:31 test3
[root@localhost ~]# rm -f test01.log 
[root@localhost ~]# ll
total 4
-rw-------. 1 root root 1482 May 24 18:16 anaconda-ks.cfg
-rw-r--r--  1 root root    0 Nov 14 23:09 test02.log
-rw-r--r--  1 root root    0 Nov 14 23:09 test03.log
drwxr-xr-x. 7 root root   76 Nov 12 18:28 test1
drwxr-xr-x. 3 root root   20 Nov 12 18:26 test2
drwx------. 2 root root    6 Nov 12 18:31 test3
  1. 删除目录下所有文件
[root@localhost ~]# ll  test1
total 0
-rw-r--r-- 1 root root 0 Nov 14 23:14 1.txt
-rw-r--r-- 1 root root 0 Nov 14 23:14 2.txt
-rw-r--r-- 1 root root 0 Nov 14 23:14 3.txt
-rw-r--r-- 1 root root 0 Nov 14 23:14 4.txt
[root@localhost ~]# rm -r test1
rm: descend into directory ‘test1’? y
rm: remove regular empty file ‘test1/1.txt’? y
rm: remove regular empty file ‘test1/2.txt’? y
rm: remove regular empty file ‘test1/3.txt’? y
rm: remove regular empty file ‘test1/4.txt’? y
rm: remove directory ‘test1’? y
[root@localhost ~]# ll  test1
ls: cannot access test1: No such file or directory

可以看到当我们删除目录的时候,会对目录下所有的文件进行询问是否要删除,如果文件太多是不是太麻烦,解决方法如下:

[root@localhost ~]# mkdir test1
[root@localhost ~]# touch test1/{1..4}.txt
[root@localhost ~]# ll test1
total 0
-rw-r--r-- 1 root root 0 Nov 14 23:19 1.txt
-rw-r--r-- 1 root root 0 Nov 14 23:19 2.txt
-rw-r--r-- 1 root root 0 Nov 14 23:19 3.txt
-rw-r--r-- 1 root root 0 Nov 14 23:19 4.txt
[root@localhost ~]# rm -fr test1
[root@localhost ~]# ls test1
ls: cannot access test1: No such file or directory
上一篇 下一篇

猜你喜欢

热点阅读