如何更优雅地提取并部署MySQL客户端可执行文件?
原始操作步骤
我通过以下命令将MySQL客户端下载为mysql-client.tar.gz文件:
$ curl -fL -o mysql-client.tar.gz https://dev.mysql.com/get/Downloads/MySQL-8.4/mysql-8.4.0-linux-glibc2.28-x86_64.tar.xz
接着执行以下步骤完成解压与安装:
$ tar xf mysql-client.tar.gz $ cd mysql-8.4.0-linux-glibc2.28-x86_64/bin $ cp mysql /usr/local/bin $ rm -f ~/mysql-client.tar.gz $ chmod a+x /usr/local/bin/mysql
请问是否存在更优雅、简洁的实现方式?
更简洁的实现方案
可以通过流式解压+精准提取目标文件的方式,省去保存压缩包、切换目录等冗余步骤,一步完成所有操作:
curl -fL https://dev.mysql.com/get/Downloads/MySQL-8.4/mysql-8.4.0-linux-glibc2.28-x86_64.tar.xz | tar xJf - --strip-components=2 -C /usr/local/bin mysql-8.4.0-linux-glibc2.28-x86_64/bin/mysql
命令说明:
tar xJf -:通过标准输入读取xz格式压缩包并解压(J是xz格式的专属参数)--strip-components=2:移除解压路径的前两层结构,直接提取bin/mysql文件-C /usr/local/bin:指定文件输出到目标目录- 最后指定要提取的具体文件路径,避免解压整个压缩包浪费资源
官方发布的mysql可执行文件本身已带可执行权限,通常无需额外执行chmod,如果需要确保权限可追加命令:
curl -fL https://dev.mysql.com/get/Downloads/MySQL-8.4/mysql-8.4.0-linux-glibc2.28-x86_64.tar.xz | tar xJf - --strip-components=2 -C /usr/local/bin mysql-8.4.0-linux-glibc2.28-x86_64/bin/mysql && chmod a+x /usr/local/bin/mysql
这种方式全程不生成临时压缩包,也无需切换目录,操作更高效简洁。
内容的提问来源于stack exchange,提问作者anechkayf
相关产品推荐
相关产品推荐

