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 中运行命令之前根据需要进行修改。
参数
- 别名
- 必需
对于 MinIO 或兼容 S3 的主机上的对象,请指定 别名 和要搜索的完整路径(例如,存储桶和前缀)。例如
mc find play/mydata/
对于文件系统上的对象,请指定要搜索的完整路径。例如
mc find ~/mydata/
发出
mc find ALIAS
且没有任何其他参数将返回指定路径下所有对象或文件的列表,类似于mc ls
。
- --ignore
- 可选
排除名称与指定 通配符模式 匹配的对象。
- --larger
- 可选
匹配所有大于指定大小(以 单位 为单位)的对象。
- --metadata
- 可选
mc 版本新增于: RELEASE.2023-04-12T02-21-51Z
仅供 MinIO 部署使用。
返回元数据与指定
key=value
匹配的对象。使用格式--metadata="KEY=value"
。您可以传递一个具有空值的键。在这种情况下,
mc find
将匹配没有元数据键或元数据键的值为空的对象。您可以多次使用此标志来匹配其他元数据键的对象。要返回对象,它必须具有所有元数据键的匹配值。
- --name
- 可选
返回名称与指定 通配符模式 匹配的对象。
- --path
- 可选
返回名称与指定 通配符模式 匹配的目录的内容。
- 可选
将结果打印到
STDOUT
。支持对输出进行 替换格式化。
- --tags
- 可选
mc 版本新增于: RELEASE.2023-04-12T02-21-51Z
仅供 MinIO 部署使用。
返回标签与指定 RE2 正则表达式模式 匹配的对象。使用格式
--tag="KEY=regexValue"
。您可以传递一个具有空值的键。在这种情况下,
mc find
将匹配没有元数据键或元数据键的值为空的对象。您可以多次使用此标志来匹配其他标签的对象。要返回对象,它必须具有所有标签的匹配值。
- --smaller
- 可选
匹配所有小于指定大小(以 单位 为单位)的对象。
- --watch
- 可选
持续监控
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
标志接受以下不区分大小写的后缀来表示指定大小值的单位
后缀 |
单位大小 |
---|---|
|
KB(千字节,1000 字节) |
|
MB(兆字节,1000 千字节) |
|
GB(吉字节,1000 兆字节) |
|
TB(太字节,1000 吉字节) |
|
KiB(Kibibyte,1024 字节) |
|
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 上进行了测试,以确保其预期功能和行为。
对于其他兼容 S3 的服务,MinIO 不提供任何保证,因为它们的 S3 API 实现未知,因此不受支持。虽然 mc 命令可能按文档记录的方式工作,但任何此类用法均须自行承担风险。