文档

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

--exec
可选

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

--ignore
可选

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

--larger
可选

匹配所有大于指定大小(以 单位 为单位)的对象。

--maxdepth
可选

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

--metadata
可选

mc 版本新增于: RELEASE.2023-04-12T02-21-51Z

仅供 MinIO 部署使用。

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

您可以传递一个具有空值的键。在这种情况下,mc find 将匹配没有元数据键或元数据键的值为空的对象。

您可以多次使用此标志来匹配其他元数据键的对象。要返回对象,它必须具有所有元数据键的匹配值。

--name
可选

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

--newer-than
可选

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

--older-than
可选

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

默认为 0(所有对象)。

--path
可选

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

--print
可选

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

--regex
可选

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

--tags
可选

mc 版本新增于: RELEASE.2023-04-12T02-21-51Z

仅供 MinIO 部署使用。

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

您可以传递一个具有空值的键。在这种情况下,mc find 将匹配没有元数据键或元数据键的值为空的对象。

您可以多次使用此标志来匹配其他标签的对象。要返回对象,它必须具有所有标签的匹配值。

--smaller
可选

匹配所有小于指定大小(以 单位 为单位)的对象。

--versions
可选

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

--watch
可选

持续监控 ALIAS 并返回与指定条件匹配的任何新对象。

全局标志

此命令支持任何 全局标志

示例

在存储桶中查找特定对象

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

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

  • NAME 替换为对象。

查找存储桶中具有文件扩展名的对象

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

  • 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 的主机的 别名

  • 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 标志接受以下不区分大小写的后缀来表示指定大小值的单位

后缀

单位大小

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} - 替换为路径的基本名称。

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

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

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

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

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

S3 兼容性

mc 命令行工具构建时考虑了与 AWS S3 API 的兼容性,并且已在 MinIO 和 AWS S3 上进行了测试,以确保其预期功能和行为。

对于其他兼容 S3 的服务,MinIO 不提供任何保证,因为它们的 S3 API 实现未知,因此不受支持。虽然 mc 命令可能按文档记录的方式工作,但任何此类用法均须自行承担风险。