文档

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
  • 方括号 [] 表示可选参数。

  • 同一行中的参数彼此相互依赖。

  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

ALIAS
Required

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

mc find play/mydata/

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

mc find ~/mydata/

执行 mc find ALIAS 且不带其他参数时,会返回指定路径下 所有 对象或文件的列表,行为类似 mc ls

--exec
Optional

mc find 返回的每个对象启动一个外部进程。 支持对输出进行 替换格式化

--ignore
Optional

排除名称匹配指定 通配符模式 的对象。

--larger
Optional

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

--maxdepth
Optional

将目录遍历限制为指定深度。

--metadata
Optional

New in version mc: RELEASE.2023-04-12T02-21-51Z

仅用于 MinIO 部署。

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

你可以传入值为空的 key。 在这种情况下,mc find 会匹配不包含该元数据 key 的对象,或该元数据 key 的值为空的对象。

你可以多次使用该选项,以匹配更多元数据 key。 要返回对象,该对象必须在所有元数据 key 上都匹配。

--name
Optional

返回名称匹配指定 通配符模式 的对象。

--newer-than
Optional

匹配晚于指定天数的对象。 指定 #d#hh#mm#ss 格式的字符串。 例如:--older-than 1d2hh3mm4ss

Changed in version 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

Changed in version 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

返回名称匹配指定 通配符模式 的目录内容。

--print
Optional

将结果打印到 STDOUT。 支持对输出进行 替换格式化

--regex
Optional

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

--tags
Optional

New in version mc: RELEASE.2023-04-12T02-21-51Z

仅用于 MinIO 部署。

返回标签匹配指定 RE2 RegEx pattern 的对象。 使用格式 --tag="KEY=regexValue"

你可以传入值为空的 key。 在这种情况下,mc find 会匹配不包含该元数据 key 的对象,或该元数据 key 的值为空的对象。

你可以多次使用该选项,以匹配更多标签。 要返回对象,该对象必须在所有标签上都匹配。

--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 cpmc 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"

查找具有匹配标签的对象

Note

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

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

  • v* 替换为要用于匹配的 RE2 正则表达式。

  • ALIAS 替换为 MinIO 部署的 alias

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

你可以添加更多 --tags="key=RegExpression" 标志进行匹配。 匹配对象必须满足所有包含的标签条件。

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

Note

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

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

  • ALIAS 替换为 MinIO 部署的 alias

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

你可以添加更多 --tags="metadata=value" 标志进行匹配。 匹配对象必须满足所有包含的元数据字段条件。

行为

计量单位

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

后缀

单位大小

k

KB(千字节,1000 字节)

m

MB(兆字节,1000 千字节)

g

GB(吉字节,1000 兆字节)

t

TB(太字节,1000 吉字节)

ki

KiB(Kibibyte,1024 字节)

mi

MiB(Mebibyte,1024 Kibibytes)

gi

GiB(Gibibyte,1024 Mebibytes)

ti

TiB(Tebibyte,1024 Gibibytes)

省略后缀时默认单位为 bytes

替换格式

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

以下关键字同时适用于文件系统和 S3 服务目标:

  • {} - 替换为完整路径。

  • {base} - 替换为路径的 basename。

  • {dir} - 替换为路径的 dirname。

  • {size} - 替换为路径对应对象的大小。

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

以下关键字仅适用于 S3 服务目标:

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

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。