mc rm
语法
The mc rm
命令 删除对象 来自 MinIO 部署上的存储桶。要完全删除存储桶,请改用 mc rb
。
您还可以对本地文件系统使用 mc rm
以产生与 rm
命令行工具类似的结果。
有关 MinIO 如何对对象执行 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 ...]
方括号
[]
表示可选参数。同一行上的参数是相互依赖的。
使用管道
|
运算符分隔的参数是互斥的。
将示例复制到文本编辑器中,并在终端/shell 中运行命令之前根据需要进行修改。
mc rm --force
是多个参数所需的。 mc rm --version-id
与多个参数互斥。有关更多信息,请参阅参考文档。
参数
- ALIAS
- 必需
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
- --bypass
- 可选
允许删除在 GOVERNANCE 对象锁定下持有的对象。
- --dangerous
- 可选
允许在
ALIAS
指定 MinIO 部署上的根目录(所有存储桶)时运行mc rm
。与
--versions
结合使用时,此标志指示mc rm
永久删除ALIAS
目标上的所有对象*和*版本。请考虑首先使用
--dry-run
运行该命令以验证站点范围删除操作的范围。警告
使用
--versions
标记运行mc rm --dangerous
是不可逆的。在执行之前,请尽一切努力确保该命令仅适用于所需的ALIAS
目标。
- --force
- 可选
允许使用以下任何参数运行
mc rm
- --incomplete, I
- 可选
删除指定对象的未完成上传。
如果任何
ALIAS
指定存储桶,则**必须**还指定--recursive
和--force
。
- --recursive, r
- 可选
递归删除每个
ALIAS
存储桶或存储桶前缀的内容。如果指定
--recursive
,则**必须**还指定--force
。对于启用了 版本控制 的存储桶,此选项默认情况下会为每个删除的对象生成一个删除标记。包含
--versions
标记以递归删除存储桶中的所有对象*和*对象版本。请考虑首先使用
--dry-run
标记运行该命令以验证递归删除操作的范围。与
mc rm --version-id
互斥。
- --rewind
- 可选
指示
mc rm
仅对在指定时间点存在的对象版本进行操作。要回溯到过去的特定日期,请将日期指定为 ISO8601 格式的时间戳。例如:
--rewind "2020.03.24T10:00"
。要回溯一段时间,请以
#d#hh#mm#ss
格式指定持续时间作为字符串。例如:--rewind "1d2hh3mm4ss"
。
--rewind
要求指定的ALIAS
是支持 存储桶版本控制 的与 S3 兼容的服务。对于 MinIO 部署,请使用mc version
启用或禁用存储桶版本控制。
- --versions
- 可选
指示
mc rm
对存储桶中存在的所有对象版本进行操作。--versions
要求指定的ALIAS
是支持 存储桶版本控制 的与 S3 兼容的服务。对于 MinIO 部署,请使用mc version
启用或禁用存储桶版本控制。将
--versions
和--rewind
结合使用以删除在特定时间点存在的全部对象版本。
- --version-id, vid
- 可选
指示
mc rm
仅对指定的对象版本进行操作。--version-id
要求指定的ALIAS
必须是支持 Bucket 版本控制 的 S3 兼容服务。对于 MinIO 部署,请使用mc version
来启用或禁用 Bucket 版本控制。与以下任何标志互斥
全局标志
此命令支持任何 全局标志。
示例
移除单个对象
mc rm ALIAS/PATH
递归移除 Bucket 内容
使用 mc rm
以及 --recursive
和 --force
选项来递归移除 Bucket 的内容。
mc rm --recursive --force ALIAS/PATH
此操作**不会**移除 Bucket 本身。请使用 mc rb
来移除 Bucket 及其所有内容和相关配置。
移除对象的全部未完成上传文件
使用 mc rm
以及 --incomplete
选项来移除对象的未完成上传文件。
mc rm --incomplete --recursive --force ALIAS/PATH
将对象回滚到以前的版本
使用 mc rm
以及 --versions
和 --newer-than
来移除比指定持续时间更旧的所有对象版本。这实际上会将对象“回滚”到当时的狀態。
重要
移除对象的特定版本是一个**破坏性**操作。您无法恢复已删除的对象版本。
mc rm ALIAS/PATH --versions --newer-than DURATION
行为
删除 Bucket 内容
使用 mc rm
移除 Bucket 中的所有内容不会删除 Bucket 本身。与 Bucket 关联的任何配置都将保留,例如 default object lock settings
。
MinIO 在对象移除时修剪空前缀
mc rm
依赖于 mc
移除 API 来删除对象。作为删除 Bucket 前缀中最后一个对象的一部分,mc
还将递归删除前缀中一直到 Bucket 根目录的每个空部分。 mc
仅将递归删除应用于作为对象写入操作**隐式**创建的前缀 - 也就是说,前缀不是使用显式目录创建命令(例如 mc mb
)创建的。
例如,考虑一个名为 photos
的 Bucket,其中包含以下对象前缀
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
命令删除了 NewYears.jpg
,则 /NYE21
前缀将保留,因为它已**显式**创建。
如果在文件系统上对操作使用 mc rm
,则 mc
会通过递归修剪一直到根目录的空目录路径来应用相同的行为。但是,mc
移除 API 无法区分显式创建的目录路径和隐式创建的目录路径。如果 mc rm
删除了文件系统路径中的最后一个对象,则 mc
会在移除操作中递归删除该路径内一直到根目录的所有空目录。
版本化 Bucket 中的删除操作
MinIO 支持在一个 Bucket 中保留对象的多个 版本。在版本化 Bucket 中删除对象会导致一个特殊的 DeleteMarker
标记,该标记将对象标记为已删除,同时保留该对象的所有先前版本。
要从 Bucket 中移除特定对象版本,请使用
mc rm --version-id
要从 Bucket 中移除对象的全部版本,请使用
mc rm --versions
要从 Bucket 中移除对象的全部非当前版本,请使用
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 命令可能按文档说明工作,但任何此类使用均需自行承担风险。