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 命令 可能 如文档中所 述工作,但任何此类使用都是您自己的风险。