本文主要介绍 MinIO 客户端 mc 的基本功能;文中所使用到的软件版本:mc RELEASE.2025-07-21T05-28-08Z、Centos 8.5.2111。
1、mc 介绍
1.1、mc 安装
这里主要介绍 mc 在 Linux 环境下的部署;可通过如下地址下载 mc 二进制包:
https://dl.minio.org.cn/client/mc/release/linux-amd64/mc https://dl.minio.io/client/mc/release/linux-amd64/mc --这个地址下载的版本比较新
1.2、mc 版本与 MinIO 服务器对齐
MinIO 客户端与 MinIO 服务器的发布是分开的。
为了最佳功能和兼容性,请使用与 MinIO 服务器版本相近的 MinIO 客户端版本。 例如,与 MinIO 服务器版本同一天或之后发布的 MinIO 客户端版本。
1.3、mc 配置文件
mc 使用一个 JSON 格式的配置文件来存储信息,对于 Linux 和 macOS,默认的配置文件位置是 ~/.mc/config.json,在使用 mc 时也可以通过 --config-dir 参数指定配置文件位置。
1.4、模式匹配
某些命令和标记允许模式匹配。 启用后,模式可以包含以下任一通配符来替换字符:
- * 表示要匹配的字符串,可以是中间的字符串,也可以是末尾的字符串。
- ? 来表示一个字符。
1.5、全局选项
--config-dir 指定配置文件位置
--debug 向控制台输出详细信息
--insecure 禁用 TLS/SSL 证书验证
--JSON 以 JSON 格式向控制台输出数据
--no-color 禁用控制台输出颜色
--quiet 抑制控制台输出
--version 显示 mc 的当前版本
--help 显示帮助信息
2、mc 基本功能
2.1、mc alias
别名相关操作。
2.1.1、mc alias list
列出本地 mc 配置中的所有别名信息。
mc [GLOBALFLAGS] alias list [ALIAS]
2.1.2、mc alias remove
从本地 mc 配置中移除一个已存在的别名。
mc [GLOBALFLAGS] alias remove ALIAS
2.1.3、mc alias set
向本地 mc 配置中添加或更新别名。
mc [GLOBALFLAGS] alias set \[--api "string"] \[--path "string"] \ALIAS \URL \ACCESSKEY \SECRETKEY
ALIAS 别名
URL MinIO 服务端 URL
ACCESSKEY 访问密钥
SECRETKEY 秘密密钥
--api 连接到 MinIO 服务时使用的签名方法,支持:S3v4 (Default)、S3v2
--path 是否启用存储桶路径查找功能,支持以下值:auto (Default)、on、off
如:
./mc alias set myMinIO http://localhost:9000 minioadmin minioadmin
2.2、mc cat
查看文件内容。
mc [GLOBALFLAGS] cat \ALIAS [ALIAS ...] \[--enc-c "value"] \[--part-number "int"] \[--rewind] \[--tail "int"] \[--version-id "string"] \[--offset "int"] \[--version-id "string"] \[--zip]
如:
./mc cat myMinio/test/abc/a.txt
2.3、mc cp
将对象从一个 MinIO 复制到另一个 MinIO,或者从 MinIO 复制到本地文件系统,或者从本地文件系统复制到 MinIO。
mc [GLOBALFLAGS] cp \[--attr "string"] \[--disable-multipart] \[--enc-kms "string"] \[--enc-s3 "string"] \[--enc-c "string"] \[--legal-hold "on"] \[--limit-download string] \[--limit-upload string] \[--md5] \[--newer-than "string"] \[--older-than "string"] \[--preserve] \[--recursive] \[--retention-mode "string" --retention-duration "string"] \[--rewind "string"] \[--storage-class "string"] \[--tags "string"] \[--version-id "string"] \[--zip] \SOURCE [SOURCE ...] \TARGET
如:
./mc cp ~/data.json myMinio/test/abc --上传本地文件到 MinIO ./mc cp --recursive ~/xyz my/test/abc --上传本地目录到 MinIO./mc cp myMinio/test/abc/data.json ~ --从MinIO下载文件到本地磁盘 ./mc cp myMinio/test/abc/data.json ~/data.json --从MinIO下载文件到本地磁盘./mc cp --recursive myMinio/test/abc/xyz ~ -- 从MinIO下载目录到本地磁盘
2.4、mc diff
比较两个目录(MinIO 目录或本地目录) 的差别,该命令只列出那些缺失或在大小上不同的对象,不比较对象的内容。
mc [GLOBALFLAGS] diff SOURCE TARGET
如:
./mc diff myMinio/test/abc/ ~/abc
2.5、mc du
统计桶或目录(MinIO 目录或本地目录)的磁盘使用情况。
mc [GLOBALFLAGS] du \[--depth] \[--recursive] \[--rewind] \[--versions] \ALIAS [ALIAS ...]
如:
./mc du myMinio/test/abc
2.6、mc find
查找文件或目录。
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
如:
./mc find --name *.txt myMinio/test
2.7、mc get
从 MinIO 下载文件到本地。
mc [GLOBALFLAGS] get \SOURCE \TARGET \[--enc-c string] \[--version-id, --vid value]
如:
./mc get myMinio/test/abc/a.txt /home/mongo
2.8、mc head
显示文件最上面 n 行数据。
mc [GLOBALFLAGS] head \[--lines int] \[--rewind "string"] \[--version-id "string"] \[--enc-c "string"] \ALIAS [ALIAS ...]
如:
./mc head -n 10 myMinio/test/abc/a.txt
2.9、mc ls
列出 Minio 上的文件或目录。
mc [GLOBALFLAGS] ls \[--incomplete] \[--recursive] \[--rewind] \[--versions] \[--summarize] \ALIAS [ALIAS ...]
如:
./mc ls myMinio/test/abc
2.10、mc mb
创建一个新的桶或目录,与 Linux 目录 mkdir -p 类似。
mc [GLOBALFLAGS] mb \[--ignore-existing] \[--region "string"] \[--with-lock] \[--with-versioning] \ALIAS
如:
./mc mb myMinio/test-bucket/abc
2.11、mc mv
移动 MinIO 或主机上的文件或目录,重命名 MinIO 或主机上的文件。
mc [GLOBALFLAGS] mv \ [--attr "string"] \ [--disable-multipart] \ [--enc-kms "string"] \ [--enc-s3 "string"] \ [--enc-c "string"] \ [--limit-download string] \ [--limit-upload string] \ [--newer-than "string"] \ [--older-than "string"] \ [--preserve] \ [--recursive] \ [--storage-class "string"] \ SOURCE [SOURCE...] \ TARGET
如:
./mc mv myMinio/test/abc/a.txt myMinio/test2/abc
2.12、mc ping
检查 MinIO 的存活情况。
mc [GLOBALFLAGS] ping \TARGET \[--count, -c value] \[--error-count, -e value] \[--interval, -i value] \[--distributed, -a value]
如:
mc ping myMinio --count 5
2.13、mc put
上传文件到 MinIO。
mc [GLOBALFLAGS] put \TARGET \[--checksum value] \[--disable-multipart] \[--enc-kms value] \[--enc-s3 value] \[--if-not-exists] \[--parallel, -P integer] \[--part-size, -s string]
如:
./mc put ~/a.txt myMinio/test
2.14、mc rb
删除 MinIO 上的桶。
mc [GLOBALFLAGS] rb \--force \[--dangerous] \ALIAS [ALIAS...]
如:
./mc rb --force myMinio/test2 #桶不为空需要添加--force参数
2.15、mc ready
检查 MinIO 的状态。
mc [GLOBALFLAGS] ready \TARGET \[--cluster-read] \[--maintenance]
如:
./mc ready myMinio
2.16、mc rm
删除 MinIO 上文件或目录。
mc [GLOBALFLAGS] rm \[--bypass] \[--dangerous] \[--dry-run] \[--force]* \[--incomplete] \[--newer-than "string"] \[--non-current] \[--older-than "string"] \[--recursive] \[--rewind "string"] \[--stdin] \[--version-id "string"]* \[--versions] \ALIAS [ALIAS ...]
--force 允许使用以下任何参数运行 mc rm
- --recursive
- --versions
- --stdin
如:
./mc rm myMinio/test3/abc/a.txt --删除文件 ./mc rm --force --recursive myMinio/test3/abc --删除目录
2.17、mc stat
显示 MinIO 存储桶或其中对象的详细信息。
mc [GLOBALFLAGS] stat \[--enc-c "value"] \[--no-list] \[--recursive] \[--rewind "string"] \[--versions] \[--version-id "string"]* \ALIAS [ALIAS ...]
如:
./mc stat myMinio/test ./mc stat --recursive myMinio/test/abc
2.18、mc tag
标签相关操作。
2.18.1、mc tag set
设置 MinIO 中桶或文件的标签。
mc [GLOBALFLAGS] tag set \[--rewind "string"] \[--versions] \[--version-id "string"]* \ALIAS \"TAGS"
如:
./mc tag set myMinio/test "a=1&b=2" ./mc tag set myMinio/test/a.txt "a=1&b=2"
2.18.2、mc tag list
列出 MinIO 中桶或文件的标签。
mc [GLOBALFLAGS] tag set \[--rewind "string"] \[--versions] \[--version-id "string"]* \ALIAS
如:
./mc tag list myMinio/test/abc
./mc tag list myMinio/test/a.txt
2.18.3、mc tag remove
删除 MinIO 中桶或文件的标签。
mc [GLOBALFLAGS] tag remove \[--rewind "string"] \[--versions] \[--version-id "string"]* \
如:
./mc tag remove myMinio/test
./mc tag remove myMinio/test/a.txt
参考:https://min-io.cn/docs/minio/linux/reference/minio-mc.html。