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>`。
- --larger
- Optional匹配大小超过指定尺寸的所有对象,尺寸单位为 units 中定义的单位。 
- --metadata
- Optional在 mc 版本加入: RELEASE.2023-04-12T02-21-51Z 此功能仅适用于MinIO部署。 返回具有与指定 key=value匹配的元数据的对象。 使用格式--metadata=KEY=value。您可以传递一个键值对,其中值为空。 在这种情况下, mc find会匹配那些没有该元数据键或者该元数据键的值为空的对象。您可以多次使用该标志来匹配具有额外元数据键的对象。 为了返回一个对象,它必须与所有元数据键的值都匹配。 
- --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(所有对象)。
- --tags
- Optional在 mc 版本加入: RELEASE.2023-04-12T02-21-51Z 仅供与MinIO部署配合使用。 返回与指定 RE2正则表达式模式 匹配的对象标签。 使用格式 --tag=KEY=regexValue.您可以传递一个键值对,其中值为空。 在这种情况下, mc find会匹配那些没有该元数据键或者该元数据键的值为空的对象。您可以多次使用该标志来匹配具有额外标签的对象。 为了返回对象,所有标签的值都必须与模式匹配。 
- --smaller
- Optional匹配小于指定大小的所有对象,单位为: units. 
- --watch
- Optional持续监控 ALIAS并返回符合 指定条件的任何新对象。
全局标记
此命令支持任何 全局标志。
示例
查找桶中的特定对象
mc find ALIAS/PATH --name NAME
查找桶中文件扩展名的对象
mc find ALIAS/PATH --name *.EXTENSION
查找所有匹配文件并复制到 S3 服务
使用 mc find 命令结合 --exec 选项来在
本地文件系统中查找文件,并将它们传递给 mc 命令
以进行进一步处理。以下示例使用 mc cp 命令将
mc find 的输出复制到 S3 兼容主机上。
mc find FILEPATH --name "*.EXTENSION" --exec "mc cp {} ALIAS/PATH"
要持续监控指定目录并复制新对象,
请包含 --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 --smaller 和 mc find --larger
标志接受以下大小写不敏感的后缀,
以表示指定大小值的单位:
| Suffix | Unit Size | 
|---|---|
| 
 | KB (Kilobyte, 1000 Bytes) | 
| 
 | MB (Megabyte, 1000 Kilobytes) | 
| 
 | GB (Gigabyte, 1000 Megabytes) | 
| 
 | TB (Terabyte, 1000 Gigabytes) | 
| 
 | KiB (Kibibyte, 1024 Bites) | 
| 
 | MiB (Mebibyte, 1024 Kibibytes) | 
| 
 | GiB (Gibibyte, 1024 Mebibytes) | 
| 
 | TiB (Tebibyte, 1024 Gibibytes) | 
省略后缀将默认为 bytes 。
替换格式
mc find --exec 和 mc find --print 命令
支持字符串替换,并对以下关键字有特殊的
解释。
以下关键字对文件系统和S3服务目标都支持:
- {}- 全路径的替换。
- {base}- 替换路径的基本名称。
- {dir}- 替换为路径的目录名。
- {size}- 替代路径的对象大小。
- {time}- 替换为路径的对象修改时间。
仅 S3 服务目标支持以下关键字:
- {url}- 替换为路径的可共享 URL。
S3兼容性
mc 命令行工具是为了与 AWS S3 API 兼容而构建的,并且已经过测试, 以确保在与 MinIO 和 AWS S3 配合使用时,功能和行为符合预期。
MinIO 不对其他 S3 兼容服务提供任何保证,因为它们的 S3 API 实现是 未知的,因此不受支持。尽管 mc 命令 可能 如文档中所 述工作,但任何此类使用都是您自己的风险。
