You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何执行tar压缩命令后Bash会尝试执行原SQL文件?

问题原因及解决办法

核心问题:误用命令替换语法

你把整个tar命令用**反引号(`)**包裹起来了,而反引号在Bash里是命令替换的语法——它会先执行反引号里的命令,再把命令的输出结果当作新的命令去执行。

你的tar命令执行时会输出被压缩的文件名(比如saveDBHistory_20220924_1550.sql),反引号会提取这个输出内容,然后Bash就会尝试把这个文件名当作命令去运行,这就导致了saveDBHistory_20220924_1550.sql: command not found的报错。

解决方法

直接去掉包裹tar命令的反引号,让命令正常执行即可:

tar zcvf "${path}${parentFolder}/saveDBHistory_${suffixe}.sql.tar.gz"  -C "${path}${parentFolder}" "saveDBHistory_${suffixe}.sql"

如果不想让tar输出被压缩的文件名(避免控制台冗余信息),可以把标准输出重定向到/dev/null:

tar zcvf "${path}${parentFolder}/saveDBHistory_${suffixe}.sql.tar.gz"  -C "${path}${parentFolder}" "saveDBHistory_${suffixe}.sql" > /dev/null

内容的提问来源于stack exchange,提问作者drannagg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 18:51:04