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

如何将单个文件压缩为tar.gz?压缩后文件路径不符问题求助

解决tar压缩时保留文件路径而非仅文件名的问题

你遇到的问题是因为tar默认会保留文件的相对路径,要让压缩包内只保留myfile.bin文件名,有两种简单的解决方法:

方法一:使用-C切换工作目录

通过-C参数让tar先切换到目标文件所在的目录,再打包该文件,这样就不会带上路径:

subprocess.call(['tar', '-zcvf', '/path/to/destination/myfile.tar.gz', '-C', './path/to/file/', 'myfile.bin'])

-C ./path/to/file/会让tar的工作目录切换到文件所在路径,之后指定的myfile.bin就是该目录下的文件,打包后就只会保留文件名。

方法二:使用--transform重命名文件

通过sed风格的替换规则,直接去掉文件的路径部分:

subprocess.call(['tar', '-zcvf', '/path/to/destination/myfile.tar.gz', '--transform', 's|.*/||', './path/to/file/myfile.bin'])

--transform 's|.*/||'表示将文件名中最后一个/之前的所有内容替换为空,只保留最后的文件名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 12:27:36