rm 代表 remove,rm 命令用于删除 Linux 和 Unix 等操作系统中的文件和目录。如果您是 Linux 新手,那么在运行 rm 命令时需要非常小心,因为一旦删除文件或目录,可能无法恢复文件和目录的内容。虽然有一些工具和命令,可以恢复已经删除的文件,但需要专业的技能。
在这篇文章中,我们将演示 10 个 rm 命令示例,希望对大家有帮助。
下面是 rm 命令的基本语法:
rm <options> {files}rm 命令使用的选项如下图所示:
让我们删除一个名为 linuxstuff .log 的文件
[linuxtechi@cloud ~]$ rm linuxstufff.log [linuxtechi@cloud ~]$一次删除多个文件
[linuxtechi@cloud ~]$ rm file1.txt file2.txt file3.txt file4.txt [linuxtechi@cloud ~]$(2) 交互式删除文件-i 选项将在删除文件之前提示,示例如下。
[linuxtechi@cloud ~]$ rm -i linuxstufff.log rm: remove regular file ‘linuxstufff.log’? y [linuxtechi@cloud ~]$(3) 删除空目录使用 rm 命令中的 -d 选项删除空目录。
[linuxtechi@cloud ~]$ ls -R appdata/ appdata/: [linuxtechi@cloud ~]$ rm -d appdata/ [linuxtechi@cloud ~]$我们也可以使用 rmdir 命令删除空目录。
[linuxtechi@cloud ~]$ ls -R appdata/ appdata/: [linuxtechi@cloud ~]$ rmdir appdata [linuxtechi@cloud ~]$(4) 递归删除目录-r 选项将递归删除父目录下的所有文件和子目录。
[linuxtechi@cloud ~]$ ls -lR dbstore/ dbstore/: total 0 -rw-rw-r--. 1 linuxtechi linuxtechi 0 Mar 26 23:59 file1.log -rw-rw-r--. 1 linuxtechi linuxtechi 0 Mar 26 23:59 file2.log -rw-rw-r--. 1 linuxtechi linuxtechi 0 Mar 26 23:59 file3.log drwxrwxr-x. 2 linuxtechi linuxtechi 6 Mar 26 23:59 service dbstore/service: total 0 [linuxtechi@cloud ~]$ rm -r dbstore/ [linuxtechi@cloud ~]$(5) 交互式删除文件和子目录-ri 选项可以交互式删除文件和子目录。
[linuxtechi@cloud ~]$ ls -lR dbstore/ dbstore/: total 0 -rw-rw-r--. 1 linuxtechi linuxtechi 0 Mar 27 00:02 file1.log -rw-rw-r--. 1 linuxtechi linuxtechi 0 Mar 27 00:02 file2.log -rw-rw-r--. 1 linuxtechi linuxtechi 0 Mar 27 00:02 file3.log drwxrwxr-x. 2 linuxtechi linuxtechi 6 Mar 27 00:02 service dbstore/service: total 0 [linuxtechi@cloud ~]$ rm -ri dbstore/ rm: descend into directory ‘dbstore/’? y rm: remove regular empty file ‘dbstore/file1.log’? y rm: remove regular empty file ‘dbstore/file2.log’? y rm: remove regular empty file ‘dbstore/file3.log’? y rm: remove directory ‘dbstore/service’? y rm: remove directory ‘dbstore/’? y [linuxtechi@cloud ~]$(6) 强制删除文件-f 选项将强制删除文件,无论其权限如何,并且还将忽略不存在的文件。
删除有写保护的文件 tech.txt
[linuxtechi@cloud ~]$ ls -l tech.txt -r--r--r--. 1 linuxtechi linuxtechi 0 Mar 27 00:23 tech.txt [linuxtechi@cloud ~]$ [linuxtechi@cloud ~]$ rm tech.txt rm: remove write-protected regular empty file ‘tech.txt’?当我们尝试删除有写保护的文件时,它会提示我们删除写保护文件。
下面我们尝试使用 -f 选项删除文件。
[linuxtechi@cloud ~]$ rm -f tech.txt [linuxtechi@cloud ~]$尝试删除不存在的文件。
[linuxtechi@cloud ~]$ rm -f nonexist.txt [linuxtechi@cloud ~]$注意: -f 选项对写保护目录不起作用。
来看一个示例:目录 “/home/linuxtechi/location/location/location/”有写保护,此目录下的“db_stuff”文件无写保护。
[linuxtechi@cloud ~]$ ls -ld /home/linuxtechi/location/ drwxrwxr-x. 2 root root 29 Mar 27 00:43 /home/linuxtechi/location/ [linuxtechi@cloud ~]$ ls -l /home/linuxtechi/location/db_stuff -rw-rw-r--. 1 linuxtechi linuxtechi 17 Mar 27 00:43 /home/linuxtechi/location/db_stuff [linuxtechi@cloud ~]$ rm -f /home/linuxtechi/location/db_stuff rm: cannot remove ‘/home/linuxtechi/location/db_stuff’: Permission denied [linuxtechi@cloud ~]$(7) 删除三个以上文件或递归删除前提示一次-I 选项将在删除三个以上文件或递归删除之前提示一次。
[linuxtechi@cloud ~]$ ls -l linux_store/ total 0 -rw-rw-r--. 1 linuxtechi linuxtechi 0 Mar 27 01:07 app1.log -rw-rw-r--. 1 linuxtechi linuxtechi 0 Mar 27 01:07 app2.log -rw-rw-r--. 1 linuxtechi linuxtechi 0 Mar 27 01:07 app3.log -rw-rw-r--. 1 linuxtechi linuxtechi 0 Mar 27 01:07 app4.log -rw-rw-r--. 1 linuxtechi linuxtechi 0 Mar 27 01:07 app5.log [linuxtechi@cloud ~]$ rm -I linux_store/app* rm: remove 5 arguments? y [linuxtechi@cloud ~]$(8) rm 命令中的正则表达式我们可以在 rm 命令中使用正则表达式,来看几个示例。
删除“linux store”目录下的 从 log1 到 log5 的 5 个日志文件。
[linuxtechi@cloud linux_store]$ pwd /home/linuxtechi/linux_store [linuxtechi@cloud linux_store]$ ll total 0 -rw-rw-r--. 1 linuxtechi linuxtechi 0 Mar 27 01:15 log1.txt -rw-rw-r--. 1 linuxtechi linuxtechi 0 Mar 27 01:15 log2.txt -rw-rw-r--. 1 linuxtechi linuxtechi 0 Mar 27 01:15 log3.txt -rw-rw-r--. 1 linuxtechi linuxtechi 0 Mar 27 01:15 log4.txt -rw-rw-r--. 1 linuxtechi linuxtechi 0 Mar 27 01:15 log5.txt -rw-rw-r--. 1 linuxtechi linuxtechi 0 Mar 27 01:15 log6.txt ........................................ [linuxtechi@cloud linux_store]$ [linuxtechi@cloud linux_store]$ rm -f log{1..5}.txt [linuxtechi@cloud linux_store]$删除当前目录下所有以 “.txt” 结尾的文件。
[linuxtechi@cloud linux_store]$ rm -f *.txt [linuxtechi@cloud linux_store]$删除当前工作目录中所有扩展名为 3 个字符的文件。
[linuxtechi@cloud linux_store]$ rm -f *.??? [linuxtechi@cloud linux_store]$(9) 删除大量文件如果您试图删除大量文件,则将获得错误消息“Argument list too long”
在下面的示例中,我试图一次删除目录 “/home/linuxtechi/linux_store”中的所有文件(总数 300001)
[linuxtechi@cloud linux_store]$ ls -l | wc -l 300001 [linuxtechi@cloud linux_store]$ rm *.log -bash: /bin/rm: Argument list too long [linuxtechi@cloud linux_store]$要解决这个问题,使用下面的 find 命令。
[linuxtechi@cloud ~]$ find ~/linux_store/ -type f -exec rm {} \; [linuxtechi@cloud ~]$(10) 删除以连字符开头的文件假设在当前工作目录中有一个名为 -store 的文件,我们想要删除这个文件。
[linuxtechi@cloud linux_store]$ ll total 0 -rw-rw-r--. 1 linuxtechi linuxtechi 0 Mar 27 02:05 -store [linuxtechi@cloud linux_store]$ rm -store rm: invalid option -- 's' Try 'rm --help' for more information. [linuxtechi@cloud linux_store]$方法1:
[linuxtechi@cloud linux_store]$ rm -- \ -store [linuxtechi@cloud linux_store]$ 方法2: [linuxtechi@cloud linux_store]$ rm ./\ -store [linuxtechi@cloud linux_store]$我的开源项目linux
本文系转载,阅读原文
https://www.koogua.com/article/401
赞收藏
分享
阅读 3.2k发布于 2024-08-09
举报
鸠摩智首席音效师
478 声望11 粉丝
身强体健,龙精虎猛的活着。
关注作者