文档基于2025-10-10日社区最终版构建     
切换到英文版    进入演示系统    进入交流社区

MinIO Documentation

mc rm

语法

Themc rm命令移除对象从 MinIO 部署中的存储桶中。 要完全删除存储桶,请使用mc rb相反。

你也可以使用mc rm针对本地文件系统产生类似 结果rm命令行工具。

有关 MinIO 性能表现的更多信息DELETE关于对象的操作,请参阅对象删除.

重要

mc rm支持删除多个对象or单个命令中的文件。考虑使用--dry-run验证操作仅针对所需对象/文件的选项。

以下命令可从mydata桶上的myminioMinIO 部署:

mc rm --recursive myminio/mydata

该命令具有以下语法:

mc [GLOBALFLAGS] rm  \
                 [--bypass]               \
                 [--dangerous]            \
                 [--dry-run]              \
                 [--force]*               \
                 [--incomplete]           \
                 [--newer-than "string"]  \
                 [--non-current]          \
                 [--older-than "string"]  \
                 [--recursive]            \
                 [--rewind "string"]      \
                 [--stdin]                \
                 [--version-id "string"]* \
                 [--versions]             \
                 ALIAS [ALIAS ...]
  • Brackets[]表示可选参数。

  • 共享同一行的参数是相互依赖的。

  • 使用竖线分隔的参数|操作符是互斥的。

将示例复制到文本编辑器中,根据需要修改,然后在终端/Shell中运行命令。

mc rm --force被多个参数所需。mc rm --version-id与多个参数互斥。有关更多信息,请参阅参考文档。

参数

ALIAS
必需

The别名MinIO 部署的完整路径以及要删除的对象的完整路径。例如:

mc rm play/mybucket/object.txt

您可以在同一个或不同的 MinIO 部署上指定多个对象。 例如:

mc rm play/mybucket/object.txt play/mybucket/otherobject.txt

如果指定存储桶或存储桶前缀的路径,您必须同时 指定--recursive--force参数。例如:

mc rm --recursive --force play/mybucket/

mc rm --recursive --force play/mybucket/myprefix/

考虑首先使用--dry-run用于验证递归删除操作范围的标志。

要从本地文件系统中删除文件,请指定该文件的完整路径:

mc rm ~/data/myoldobject.txt
--绕过
可选

允许移除持有的对象治理对象锁定。

--危险
可选

允许运行mc rmALIAS指定 MinIO 部署中的根目录(所有存储桶)。

当与--versions这个标志 指示mc rm永久删除所有对象来自ALIAStarget.

考虑首先使用--dry-run验证站点范围删除操作的范围。

警告

跑步mc rm --dangerous随着--versionsflag 是不可逆的。请尽一切可能的努力确保该命令仅适用于预期的ALIAS执行前的目标。

--dry-run
可选

输出命令的结果,但实际上不会删除任何文件。 使用此标志可以测试您的命令配置是否仅删除了您希望删除的对象。

--force
可选

允许运行mc rm使用以下任意参数:

--不完整, I
可选

删除指定对象的不完整上传。

如果有任何ALIAS指定一个存储桶,必须也请指定--recursive--force.

--newer-than
可选

删除比指定天数更新的对象。指定一个字符串在#d#hh#mm#ss格式。例如:--newer-than 1d2hh3mm4ss

默认值为0(所有对象)。

--非流动
可选

移除所有非流动来自指定对象的版本ALIAS.

此选项对没有版本控制的存储桶没有影响版本控制已启用。

--older-than
可选

删除早于指定时间限制的对象。指定一个字符串,格式为#d#h#m#s格式。例如:--older-than 1d2h3m4s.

默认值为0(所有对象)。

--recursive, r
可选

递归删除每个目录的内容ALIAS存储桶或存储桶前缀。

如果指定--recursive你好必须另外 指定--force.

对于具有版本控制enabled, 此选项默认会为每个移除的对象生成一个删除标记。 Include the--versions递归删除所有对象的标志从存储桶中删除对象版本。

考虑首先使用--dry-run用于验证递归删除操作范围的标志。

与以下内容互斥mc rm --version-id

--rewind
可选

Directsmc rm仅对指定时间点存在的对象版本进行操作。

  • 要回滚到过去的特定日期,请将日期指定为 ISO8601格式的时间戳。例如:--rewind "2020.03.24T10:00".

  • 要倒回一段时间,请将持续时间指定为字符串,格式为#d#hh#mm#ss格式。例如:--rewind "1d2hh3mm4ss".

--rewind要求指定的ALIAS成为兼容 S3 的服务 并支持Bucket Versioning对于 MinIO 部署,请使用mc version启用或禁用存储桶版本控制。

--stdin
可选

读取对象名称或存储桶STDIN.

--versions
可选

Directsmc rm对存储桶中存在的所有对象版本执行操作。

--versions要求指定的ALIAS成为兼容 S3 的服务 并支持Bucket Versioning对于 MinIO 部署,请使用mc version启用或禁用存储桶版本控制。

使用--versions--rewind共同移除在特定时间点存在的所有对象版本。

--version-id, vid
可选

Directsmc rm仅对指定的对象版本进行操作。

--version-id要求指定的ALIAS成为兼容 S3 的服务 并支持Bucket Versioning对于 MinIO 部署,请使用mc version启用或禁用存储桶版本控制。

与以下任何标志互斥:

全局标志

此命令支持任何全局标志.

示例

删除单个对象

mc rm ALIAS/PATH
  • 替换ALIAS随着alias已配置的 S3 兼容服务。

  • 替换PATH指向对象的路径。

递归删除存储桶的内容

使用mc rm随着--recursive--force选项 用于递归删除存储桶的内容。

mc rm --recursive --force ALIAS/PATH
  • 替换ALIAS随着alias已配置的 S3 兼容服务。

  • 替换PATH使用存储桶的路径。

此操作不会删除存储桶。使用mc rb删除存储桶及其所有内容和相关配置。

删除对象的所有不完整上传文件

使用mc rm随着--incomplete删除对象不完整上传文件的选项。

mc rm --incomplete --recursive --force ALIAS/PATH
  • 替换ALIAS随着alias已配置的 S3 兼容服务。

  • 替换PATH指向对象的路径。

回滚对象到先前版本

使用mc rmwith--versions--newer-than删除所有比指定时间更新的对象版本。这实际上是将对象"回滚"到该时间点的状态。

重要

删除对象的特定版本是一个破坏性的操作。您无法 恢复已删除的对象版本。

mc rm ALIAS/PATH --versions --newer-than DURATION
  • 替换ALIAS随着alias已配置的 S3 兼容服务。

  • 替换PATH使用对象的路径。例如,/mybucket/myobject.

  • 替换DURATION从当前主机时间往前推算的天数,操作将从此时间点开始删除对象的版本。例如,要删除过去30天内创建的对象的所有版本,请指定"30d".

行为

删除存储桶内容

使用mc rm要删除存储桶中的所有内容并不会删除存储桶本身。与存储桶相关的任何配置都会保留,例如default object lock settings.

要完全删除一个存储桶,请使用mc rb而不是mc rm.

MinIO 在删除对象时修剪空前缀

mc rm依赖于mc用于删除对象的移除 API。作为删除存储桶前缀中最后一个对象的一部分,mc同时还会递归删除前缀的每个空部分,直到存储桶根目录。mc仅对 已创建的前缀应用递归删除隐式地作为对象写入操作的一部分 - 也就是说,此前缀不是通过显式目录创建命令(如mc mb.

例如,考虑一个存储桶photos使用以下对象前缀:

  • photos/2021/january/myphoto.jpg

  • photos/2021/february/myotherphoto.jpg

  • photos/NYE21/NewYears.jpg

photos/NYE21使用显式创建的前缀mc mb所有其他前缀都是隐式地作为写入该前缀处对象的一部分创建。

如果mc命令移除myphoto.jpg, the removal API automatically trims the empty/januaryprefix. 如果后续mc命令移除myotherphoto.jpg移除 API 会自动对/februaryprefix现在空着的/2021prefix. 如果某个mc命令移除NewYears.jpg, the/NYE21前缀保持不变,因为它已经就位明确地已创建。

如果使用mc rm对于文件系统的操作,mc应用了相同的行为,通过递归修剪空目录路径直到根目录。然而,mcremove API 无法区分显式创建的目录路径和隐式创建的目录路径。如果mc rm删除文件系统路径中的最后一个对象,mc递归删除该路径下所有空目录,直至根目录,作为删除操作的一部分。

版本化存储桶中的删除操作

MinIO支持保留多个版本单个存储桶中对象的删除版本化存储桶中的对象会产生特殊的DeleteMarker墓碑 用于将对象标记为已删除,同时保留该对象的所有先前版本。

在版本 mc 中更改:RELEASE.2023-03-20T17-17-53Z

输出显示版本控制文件的修改时间。 当与--dry-run这可以帮助确认您选择了正确的对象进行删除。

S3 Compatibility

Themc命令行工具专为兼容 AWS S3 API 而构建,并已通过 MinIO 和 AWS S3 测试,确保功能与行为符合预期。

MinIO 不提供对其他 S3 兼容服务的保证,因为它们的 S3 API 实现方式未知,因此不受支持。尽管mc命令可能按文档所述工作,任何此类使用风险自负。