前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【linux命令讲解大全】035.文件删除命令:rm 和 rmdir 的用法详解

【linux命令讲解大全】035.文件删除命令:rm 和 rmdir 的用法详解

作者头像
全栈若城
发布2024-03-02 13:02:16
6610
发布2024-03-02 13:02:16
举报
文章被收录于专栏:若城技术专栏

rm

用于删除给定的文件和目录

补充说明

rm命令可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除掉。对于链接文件,只是删除整个链接文件,而原有文件保持不变。

注意:使用rm命令要格外小心。因为一旦删除了一个文件,就无法再恢复它。所以,在删除文件之前,最好再看一下文件的内容,确定是否真要删除。rm命令可以用-i选项,这个选项在使用文件扩展名字符删除多个文件时特别有用。使用这个选项,系统会要求你逐一确定是否要删除。这时,必须输入y并按Enter键,才能删除文件。如果仅按Enter键或其他字符,文件不会被删除。

语法
代码语言:javascript
复制
rm (选项)(参数)
选项
  • -d:直接把欲删除的目录的硬连接数据删除成0,删除该目录;
  • -f:强制删除文件或目录;
  • -i:删除已有文件或目录之前先询问用户;
  • -r-R:递归处理,将指定目录下的所有文件与子目录一并处理;
  • --preserve-root:不对根目录进行递归操作;
  • -v:显示指令的详细执行过程。
参数

文件:指定被删除的文件列表,如果参数中含有目录,则必须加上-r或者-R选项。

实例

交互式删除当前目录下的文件testexample

代码语言:javascript
复制
rm -i test example

删除当前目录下除隐含文件外的所有文件和子目录

代码语言:javascript
复制
rm -r *

应注意,这样做是非常危险的!

删除当前目录下的package-lock.json文件

代码语言:javascript
复制
find . -name "package-lock.json" -exec rm -rf {} \;

查找 .html 结尾的文件并删除

代码语言:javascript
复制
find ./docs -name "*.html" -exec rm -rf {} \;

删除当前项目下 .html 结尾的文件

代码语言:javascript
复制
rm -rf *.html

删除当前目录下的node_modules目录

代码语言:javascript
复制
find . -name 'node_modules' -type d -prune -exec rm -rf '{}' +

删除文件

代码语言:javascript
复制
rm testfile.txt

删除目录

代码语言:javascript
复制
rm -r [目录名称]

删除操作前有确认提示

代码语言:javascript
复制
rm -i [文件/目录]

rm忽略不存在的文件或目录

-f选项(即“force”)让此次操作强制执行,忽略错误提示

代码语言:javascript
复制
rm -f [文件...]

仅在某些场景下确认删除

选项-I,可保证在删除超过3个文件时或递归删除时仅提示一次确认。

代码语言:javascript
复制
rm -I file1 file2 file3

删除根目录

当然,删除根目录(/)是 Linux 用户最不想要的操作,这也就是为什么默认rm命令不支持在根目录上执行递归删除操作。然而,如果你非得完成这个操作,你需要使用--no-preserve-root选项。当提供此选项,rm就不会特殊处理根目录(/)了。

不给实例了,操作系统都被你删除了,你太坏了😆

rm显示当前删除操作的详情

代码语言:javascript
复制
rm -v [文件/目录]

rmdir

用来删除空目录

补充说明

rmdir命令用来删除空目录。当目录不再被使用时,或者磁盘空间已到达使用限定值,就需要删除失去使用价值的目录。利用rmdir命令可以从一个目录中删除一个或多个空的子目录。该命令从一个目录中删除一个或多个子目录,其中dirname表示目录名。如果dirname中没有指定路径,则删除当前目录下由dirname指定的目录;如dirname中包含路径,则删除指定位置的目录。删除目录时,必须具有对其父目录的写权限。

注意:子目录被删除之前应该是空目录。就是说,该目录中的所有文件必须用rm命令全部删除。另外,当前工作目录必须在被删除目录之上,不能是被删除目录本身,也不能是被删除目录的子目录。

虽然还可以用带有-r选项的rm命令递归删除一个目录中的所有文件和该目录本身,但是这样做存在很大的危险性。

语法
代码语言:javascript
复制
rmdir (选项)(参数)
选项
  • -p--parents:删除指定目录后,若该目录的上层目录已变成空目录,则将其一并删除;
  • --ignore-fail-on-non-empty:此选项使rmdir命令忽略由于删除非空目录时导致的错误信息;
  • -v--verboes:显示命令的详细执行过程;
  • --help:显示命令的帮助信息;
  • --version:显示命令的版本信息。
参数

目录列表:要删除的空目录列表。当删除多个空目录时,目录名之间使用空格隔开。

实例

将工作目录下,名为www的子目录删除:

代码语言:javascript
复制
rmdir www

在工作目录下的www目录中,删除名为Test的子目录。若Test删除后,www目录成为空目录,则www亦予删除。

代码语言:javascript
复制
rmdir -p www/Test

下面命令等价于rmdir a/b/c, rmdir a/b, rmdir a

代码语言:javascript
复制
rmdir -p a/b/c
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-02-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • rm
    • 补充说明
      • 语法
        • 选项
          • 参数
            • 实例
            • rmdir
              • 补充说明
                • 语法
                  • 选项
                    • 参数
                      • 实例
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档