中文文档

mc find

语法

mc find 命令支持在 MinIO 部署上搜索对象。 您还可以使用此命令在文件系统上搜索文件。

以下命令在 myminio MinIO 部署的 mydata 桶 中搜索与指定模式匹配的所有对象:

mc find myminio/mydata --name "*.jpg"

该命令具有以下语法:

mc [GLOBALFLAGS] find                    \
                 [--exec "string"]       \
                 [--ignore "string"]     \
                 [--larger "string"]     \
                 [--maxdepth "string"]   \
                 [--metadata "string"]   \
                 [--name "string"]       \
                 [--newer-than "string"] \
                 [--older-than "string"] \
                 [--path "string"]       \
                 [--print "string"]      \
                 [--regex "string"]      \
                 [--smaller "string"]    \
                 [--tags "string"]`      \
                 [--versions]            \
                 [--watch]               \
                 ALIAS
  • 方括号 [] 表示可选参数。

  • 参数在同一行表示它们是相互依赖的。

  • 使用管道 | 运算符分隔的参数是相互排斥的。

在终端/壳中运行命令之前,将示例复制到文本编辑器中并按需进行修改。

参数

ALIAS
Required

对于 MinIO 或 S3 兼容的主机上的对象,请指定 别名 和要搜索的完整路径(例如,存储桶和前缀)。 例如:

mc find play/mydata/

对于文件系统上的对象,请指定要搜索的完整路径。 例如:

mc find ~/mydata/

使用 mc find ALIAS 命令,如果没有其他参数,将返回指定 路径下的 所有 对象或文件的列表,类似于 mc ls 命令。

--exec
Optional

对于 mc find 命令返回的每个对象,都会启动一个外部进程。 支持对输出进行 :ref:` 替换格式化 <mc-find-substitution-format>`。

--ignore
Optional

排除名称符合指定 :ref:` 通配符模式 <minio-wildcard-matching>` 的对象。

--larger
Optional

匹配大小超过指定尺寸的所有对象,尺寸单位为 units 中定义的单位。

--maxdepth
Optional

限制目录导航到指定的深度。

--metadata
Optional

在 mc 版本加入: RELEASE.2023-04-12T02-21-51Z

此功能仅适用于MinIO部署。

返回具有与指定 key=value 匹配的元数据的对象。 使用格式 --metadata=KEY=value

您可以传递一个键值对,其中值为空。 在这种情况下, mc find 会匹配那些没有该元数据键或者该元数据键的值为空的对象。

您可以多次使用该标志来匹配具有额外元数据键的对象。 为了返回一个对象,它必须与所有元数据键的值都匹配。

--name
Optional

返回名称符合指定 :ref:` 通配符模式 <minio-wildcard-matching>` 的对象。

--newer-than
Optional

镜像比指定天数更新的对象。 以 #d#hh#mm#ss 格式指定字符串。 例如: --older-than 1d2hh3mm4ss

在 RELEASE.2025-02-04T04-57-50Z 版本发生变更: 日期时间也可以以 YYYY-MM-DD HH:MM:SS TMZ 格式的绝对时间指定。 例如, mc find --newer-than="2025-01-22 09:57:00 CET" minioalias/mybucket

--older-than
Optional

镜像比指定时间限制更旧的对象。指定 一个格式为 #d#hh#mm#ss 字符串. 例如: --older-than 1d2hh3mm4ss

在 RELEASE.2025-02-04T04-57-50Z 版本发生变更: 日期时间也可以以 YYYY-MM-DD HH:MM:SS TMZ 格式的绝对时间指定。 例如, mc find --newer-than="2025-01-22 09:57:00 CET" minioalias/mybucket

默认为 0 (所有对象)。

--path
Optional

返回名称符合指定 :ref:` 通配符模式 <minio-wildcard-matching>` 的目录内容。

--print
Optional

将结果打印到 STDOUT 。 支持输出的:ref:替代格式化 <mc-find-substitution-format>

--regex
Optional

返回与指定的PCRE正则表达式模式匹配的对象或 目录内容。

--tags
Optional

在 mc 版本加入: RELEASE.2023-04-12T02-21-51Z

仅供与MinIO部署配合使用。

返回与指定 RE2正则表达式模式 匹配的对象标签。 使用格式 --tag=KEY=regexValue.

您可以传递一个键值对,其中值为空。 在这种情况下, mc find 会匹配那些没有该元数据键或者该元数据键的值为空的对象。

您可以多次使用该标志来匹配具有额外标签的对象。 为了返回对象,所有标签的值都必须与模式匹配。

--smaller
Optional

匹配小于指定大小的所有对象,单位为: units.

--versions
Optional

在结果中包含所有对象版本。

--watch
Optional

持续监控 ALIAS 并返回符合 指定条件的任何新对象。

全局标记

此命令支持任何 全局标志

示例

查找桶中的特定对象

mc find ALIAS/PATH --name NAME
  • ALIAS 替换为 S3 兼容 主机的 alias

  • PATH 替换为 S3 兼容主机上的存储桶 路径。从 S3 主机的根目录开始搜索时,省略搜索路径。

  • NAME 替换为对象的名字。

查找桶中文件扩展名的对象

mc find ALIAS/PATH --name *.EXTENSION
  • ALIAS 替换为 S3 兼容 主机的 alias

  • PATH 替换为 S3 兼容 主机上的存储桶路径。

  • EXTENSION 替换为对象的后缀名。

查找所有匹配文件并复制到 S3 服务

使用 mc find 命令结合 --exec 选项来在 本地文件系统中查找文件,并将它们传递给 mc 命令 以进行进一步处理。以下示例使用 mc cp 命令将 mc find 的输出复制到 S3 兼容主机上。

mc find FILEPATH --name "*.EXTENSION" --exec "mc cp {} ALIAS/PATH"
  • FILEPATH 替换为要搜索的目录的 完整文件路径。

  • EXTENSION 替换为对象的后缀名。

  • ALIAS 替换为 S3 兼容 主机的 alias

  • PATH 替换为 S3 兼容 主机上的存储桶路径。

要持续监控指定目录并复制新对象, 请包含 --watch 参数:

mc find --watch FILEPATH --name "*.EXTENSION" --exec "mc cp {} ALIAS/PATH"

查找具有匹配标签的对象

备注

标签匹配功能仅适用于 MinIO 部署。

mc find --tags="key=v*" ALIAS/BUCKET/
  • key 替换为要匹配的标签键的名称。

  • v* 替换为要评估的 RE2 正则表达式。

  • ALIAS 替换为 MinIO 部署的 别名

  • BUCKET 替换为要搜索的存储桶或前缀。

您可以添加额外的 --tags=key=RegExpression 标志来匹配。 匹配的对象必须满足所有包含的标签。

查找具有匹配元数据的对象

备注

元数据匹配仅适用于 MinIO 部署。

mc find --json --metadata="content-type=text/csv" ALIAS/BUCKET/
  • content-type=text/csv 替换为要匹配的元数据字段和值的对。

  • ALIAS 替换为 MinIO 部署的 别名

  • BUCKET 替换为要搜索的存储桶或前缀。

您可以添加额外的 --tags=metadata=value 标志来匹配。 匹配的对象必须满足所有包含的元数据字段。

行为

测量单位

mc find --smallermc find --larger 标志接受以下大小写不敏感的后缀, 以表示指定大小值的单位:

Suffix

Unit Size

k

KB (Kilobyte, 1000 Bytes)

m

MB (Megabyte, 1000 Kilobytes)

g

GB (Gigabyte, 1000 Megabytes)

t

TB (Terabyte, 1000 Gigabytes)

ki

KiB (Kibibyte, 1024 Bites)

mi

MiB (Mebibyte, 1024 Kibibytes)

gi

GiB (Gibibyte, 1024 Mebibytes)

ti

TiB (Tebibyte, 1024 Gibibytes)

省略后缀将默认为 bytes

替换格式

mc find --execmc find --print 命令 支持字符串替换,并对以下关键字有特殊的 解释。

以下关键字对文件系统和S3服务目标都支持:

  • {} - 全路径的替换。

  • {base} - 替换路径的基本名称。

  • {dir} - 替换为路径的目录名。

  • {size} - 替代路径的对象大小。

  • {time} - 替换为路径的对象修改时间。

仅 S3 服务目标支持以下关键字:

  • {url} - 替换为路径的可共享 URL。

S3兼容性

mc 命令行工具是为了与 AWS S3 API 兼容而构建的,并且已经过测试, 以确保在与 MinIO 和 AWS S3 配合使用时,功能和行为符合预期。

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

Join Slack 商业支持购买咨询