Bash 为从stdout生成的zip存档中的文件命名
我正在用python脚本运行postgresql查询Bash 为从stdout生成的zip存档中的文件命名,bash,postgresql,gzip,Bash,Postgresql,Gzip,我正在用python脚本运行postgresql查询 copy (SELECT * FROM table) TO PROGRAM 'gzip > ./" + file_from + "' with csv HEADER; 生成的zip文件具有预期的名称,但zip存档中的文件没有扩展名,它与zipfile的扩展名相同,但没有“.zip”扩展名。我希望在文件名中添加“.csv”扩展名,而无需执行复杂的操作(例如解压缩、重命名、压缩) 提前感谢您。Gzip不像pkzip那样
copy (SELECT * FROM table) TO PROGRAM 'gzip > ./" + file_from + "' with csv HEADER;
生成的zip文件具有预期的名称,但zip存档中的文件没有扩展名,它与zipfile的扩展名相同,但没有“.zip”扩展名。我希望在文件名中添加“.csv”扩展名,而无需执行复杂的操作(例如解压缩、重命名、压缩)
提前感谢您。Gzip不像pkzip那样创建归档
如果将gzip的输出发送到
datadump.csv.gz
,则对其运行gunzip
,将其解压缩到名为datadump.csv
的文件中,但这只是一个遵循约定的方便功能,对文件中的实际内容没有影响。假设您想使用“gzip”,惯例是创建并使用“.csv.gz”作为后缀。对文件使用“gunzip”将生成filename.csv
如果出现上述示例,请将文件名设置为“which.csv.gz”
使用ZIP格式稍微复杂一些,因为ZIP可以更好地处理文件。等效的命令将是
zip whatever.zip-
进行压缩,以及“funzip whatever.zip>whatever.csv”取消压缩gzip不是zip。zip不是gzip。gzip文件不是归档文件——它只是一个压缩文件。gzip没有添加“.zip”扩展名。它加了“.gz”。你的问题没有道理。