美文网首页linux常用命令
文件和目录操作命令-06-rm命令

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

作者: 夏胖运维 | 来源:发表于2020-11-14 23:20 被阅读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
    

    相关文章

      网友评论

        本文标题:文件和目录操作命令-06-rm命令

        本文链接:https://www.haomeiwen.com/subject/sesgbktx.html