前言:
此时兄弟们对“c语言rm”都比较关注,小伙伴们都想要知道一些“c语言rm”的相关文章。那么小编在网上收集了一些有关“c语言rm””的相关资讯,希望我们能喜欢,我们快快来学习一下吧!rm 是 remove 的缩写,顾名思义,rm 命令用于删除系统中的文件和目录。如果你是 Linux 新手,那么在运行 rm 命令时一定非常小心,因为一旦你删除了文件或目录,那么你就不能恢复文件和目录的内容,虽然有一些工具和命令可以恢复删除的文件,但你需要专业技能。
rm 命令的基本语法如下:
# rm <options> {files}
rm 命令选项:
(1) 删除文件
删除单个文件
[linuxtechi@cloud ~]$ rm linuxstufff.log[linuxtechi@cloud ~]$
删除多个文件
[linuxtechi@cloud ~]$ rm file1.txt file2.txt file3.txt file4.txt[linuxtechi@cloud ~]$(2) 交互式删除文件
rm 命令中的 -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 ~]$
linux 下也可以使用 rmdir 命令删除空目录
[linuxtechi@cloud ~]$ ls -R appdata/appdata/:[linuxtechi@cloud ~]$ rmdir appdata[linuxtechi@cloud ~]$(4) 递归删除目录
rm 命令中的 -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.logdrwxrwxr-x. 2 linuxtechi linuxtechi 6 Mar 26 23:59 servicedbstore/service:total 0[linuxtechi@cloud ~]$ rm -r dbstore/[linuxtechi@cloud ~]$(5) 交互式地删除文件和子目录
rm 命令中的 -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.logdrwxrwxr-x. 2 linuxtechi linuxtechi 6 Mar 27 00:02 servicedbstore/service:total 0[linuxtechi@cloud ~]$ rm -ri dbstore/rm: descend into directory ‘dbstore/’? yrm: remove regular empty file ‘dbstore/file1.log’? yrm: remove regular empty file ‘dbstore/file2.log’? yrm: remove regular empty file ‘dbstore/file3.log’? yrm: remove directory ‘dbstore/service’? yrm: remove directory ‘dbstore/’? y[linuxtechi@cloud ~]$(6) 强制删除文件
rm 命令中的 -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 选项的 rm 命令删除写保护文件时,它会提示我们删除写保护文件。
现在尝试使用 -f 选项删除 tech.txt 文件
[linuxtechi@cloud ~]$ rm -f tech.txt [linuxtechi@cloud ~]$
也可以尝试删除一个不存在的文件
[linuxtechi@cloud ~]$ rm -f nonexist.txt[linuxtechi@cloud ~]$
注意: rm 命令的 -f 选项对写保护目录无效
示例如下,/home/linuxtechi/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_stuffrm: cannot remove ‘/home/linuxtechi/location/db_stuff’: Permission denied[linuxtechi@cloud ~]$(7) 删除三个以上文件或递归删除前提示一次
rm 命令中的 -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 命令中使用正则表达式,示例如下
删除当前目录下从 log1 到 log5 的日志文件
[linuxtechi@cloud linux_store]$ pwd/home/linuxtechi/linux_store[linuxtechi@cloud linux_store]$ lltotal 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]$
Delete all the files of the current directory that ends with ‘.txt’
删除当前目录下所有以“.txt”结尾的文件
[linuxtechi@cloud linux_store]$ rm -f *.txt[linuxtechi@cloud linux_store]$
删除当前工作目录下所有扩展名为 3 个字符的文件
[linuxtechi@cloud linux_store]$ rm -f *.???[linuxtechi@cloud linux_store]$(9) 删除大量文件
使用 rm 命令删除大量文件,您将得到 Argument list too long 的错误提示
[linuxtechi@cloud linux_store]$ ls -l | wc -l300001[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]$ lltotal 0-rw-rw-r--. 1 linuxtechi linuxtechi 0 Mar 27 02:05 -store[linuxtechi@cloud linux_store]$ rm -storerm: invalid option -- 's'Try 'rm --help' for more information.[linuxtechi@cloud linux_store]$
使用下面的命令删除此类文件
[linuxtechi@cloud linux_store]$ rm -- \ -store [linuxtechi@cloud linux_store]$OR[linuxtechi@cloud linux_store]$ rm ./\ -store [linuxtechi@cloud linux_store]$我的开源项目
course-tencent-cloud(酷瓜云课堂 - gitee 仓库)course-tencent-cloud(酷瓜云课堂 - github 仓库)
标签: #c语言rm