mc rm
语法
使用 mc rm
命令 removes objects 从 MinIO 部署的桶中删除对象。
要完全删除一个存储桶,请使用 mc rb
命令。
您还可以将 mc rm
命令用于本地文件系统,
以产生类似于命令行工具 rm
的结果。
有关 MinIO 如何对对象执行 DELETE
操作的更多信息,请参阅 minio-object-delete 。
以下命令从 myminio
MinIO部署的 mydata
桶
中删除多个对象:
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 ...]
方括号
[]
表示可选参数。参数在同一行表示它们是相互依赖的。
使用管道
|
运算符分隔的参数是相互排斥的。
在终端/壳中运行命令之前,将示例复制到文本编辑器中并按需进行修改。
mc rm --force
需要多个参数。
mc rm --version-id
与多个命令选项互斥。 更多信息请参见参考文档。
参数
- ALIAS
- Required
MinIO部署的 alias 和要删除的对象的 完整路径。 例如:
mc rm play/mybucket/object.txt
您可以指定同一MinIO部署或不同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
- --bypass
- Optional
允许删除在 GOVERNANCE 对象锁定下持有的对象。
- --dangerous
- Optional
允许在
ALIAS
指定MinIO部署的 根(所有桶)时运行mc rm
命令。当与
--versions
标志结合使用时, 此标志指示mc rm
从ALIAS
目标永久删除 所有对象 及其 版本。在执行全局删除操作之前,建议先使用
--dry-run
标志运行命令以验证删除操作的范围。警告
使用
mc rm --dangerous
标志和--versions
标志运行ALIAS
命令是不可逆的。 在执行之前,务必尽一切可能确保命令只适用于 您希望删除的`ALIAS`目标。
- --force
- Optional
允许使用以下任意参数运行
mc rm
:
- --incomplete, I
- Optional
删除指定对象的不完整上传。
如果任何
ALIAS
指定了一个桶, 那么 必须 也指定--recursive
和--force
。
- --newer-than
- Optional
删除指定天数内更新的对象。 指定
#d#hh#mm#ss
格式的字符串。 例如:--newer-than 1d2hh3mm4ss
默认为
0
(所有对象)。
- --older-than
- Optional
删除指定时间限制之前的对象。用
#d#h#m#s
格式的字符串来指定时间限制。 例如:--older-than 1d2h3m4s
。默认为
0
(所有对象)。
- --recursive, r
- Optional
递归地删除每个
ALIAS
桶或 桶前缀的内容。如果指定了
--recursive
,那么 必须 也指定--force
。对于启用了 版本管理 的桶, 此选项默认会为每个删除的对象产生一个删除标记。 使用
--versions
标志来递归地从桶中 删除所有对象及其版本。在执行递归删除操作之前,可以首先使用
--dry-run
标志运行命令, 以验证删除操作的范围。与
mc rm --version-id
互斥
- --rewind
- Optional
指令
mc rm
只对在指定时间点存在的 对象版本进行操作。要回退到过去的特定日期,请将日期指定 为 ISO8601 格式的时间戳。例如:
--rewind 2020.03.24T10:00
。要回退一段时间,请将持续时间指定为字符串格式, 例如
#d#hh#mm#ss
。例如:--rewind 1d2hh3mm4ss
。
--rewind
命令要求指定的ALIAS
是一个支持 桶版本控制 的 S3 兼容服务。 对于 MinIO 部署,使用mc version
命令来启用或禁用桶版本控制。
- --versions
- Optional
指令
mc rm
对存储桶中所有的对象版本进行 操作。--versions
命令要求指定的ALIAS
是一个支持 桶版本控制 的 S3 兼容服务。 对于 MinIO 部署,使用mc version
命令来启用或禁用桶版本控制。使用
--versions
和--rewind
一起, 以删除在特定时间点存在的所有对象版本。
- --version-id, vid
- Optional
指令
mc rm
只对指定的对象版本进行操作。需要指定的
ALIAS
是一个支持 桶版本控制 的 S3 兼容服务。 对于 MinIO 部署,使用mc version
命令来启用或禁用桶版本控制。与以下标志互斥:
全局标记
此命令支持任何 全局标志。
示例
删除单个对象
mc rm ALIAS/PATH
递归删除存储桶的内容
使用 mc rm`命令,配合 :mc-cmd:`~mc rm --recursive
和 --force
选项,
以递归方式删除存储桶的内容。
mc rm --recursive --force ALIAS/PATH
这个操作不会删除存储桶本身。要删除存储桶以及其中所有的
内容和关联配置,请使用 mc rb
命令。
删除对象的所有不完整上传文件
使用 mc rm
和 --incomplete
选项删除对象的未完成上传文件。
mc rm --incomplete --recursive --force ALIAS/PATH
将对象回滚到以前的版本
使用 mc rm
命令配合 --versions
和 --newer-than
选项可以删除
所有比指定时间 duration 更新的对象版本。
这实际上是将对象 “回滚” 到那个时间点的状态。
重要
删除对象的特定版本是一个 破坏性 操作。您无法 恢复已删除的对象版本。
mc rm ALIAS/PATH --versions --newer-than DURATION
行为
删除存储桶内容
使用 mc rm
命令删除存储桶中的所有内容不会删除存储桶本身。与存储桶关联的任何配置仍然保持不变,
例如 default object lock settings
命令设定的默认对象锁定设置。
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
,
删除 API 会自动删除空的前缀 /january
。
如果后续的 mc
命令删除了 myotherphoto.jpg
,
删除 API 会自动删除 /february
前缀 以及 现在为空的
前缀 /2021
。如果一个 mc:mc 命令删除了 NewYears.jpg
,
/NYE21
前缀保持不变,因为它是由 显式 创建的。
如果使用 mc rm
对文件系统进行操作,
mc
会通过递归删除空目录路径直到根目录来应用相同的行为。
然而,mc
的删除 API 无法区分显式创建的目录路径
和隐式创建的目录路径。如果 mc rm
删除了
文件系统路径中的最后一个对象,mc
在删除操作
过程中会递归地删除该路径内所有的空目录,直到根目录。
版本化存储桶中的删除操作
MinIO支持在单个桶中保留对象的多个
版本 。在版本化的桶中
删除
对象会产生一个特殊的 删除标记
,该标记将对象标记为已删除,
同时保留该对象的先前所有版本。
要从一个桶中删除特定对象版本,请使用
mc rm --version-id
要从桶中删除一个对象的的所有版本,请使用
mc rm --versions
要从桶中删除一个对象的所有非当前版本,请使用
mc rm --non-current
在 mc 版本发生变更: RELEASE.2023-03-20T17-17-53Z
输出显示了版本文件的修改时间。
当与 --dry-run
一起使用时,这可以帮助确认您选择了要删除的正确对象。
S3兼容性
mc 命令行工具是为了与 AWS S3 API 兼容而构建的,并且已经过测试, 以确保在与 MinIO 和 AWS S3 配合使用时,功能和行为符合预期。
MinIO 不对其他 S3 兼容服务提供任何保证,因为它们的 S3 API 实现是 未知的,因此不受支持。尽管 mc 命令 可能 如文档中所 述工作,但任何此类使用都是您自己的风险。