请求:当我使用流压缩文件时,我想保留原始文件名
我正在使用 gzip -9 压缩带有流的文件(非常大的文件)
gunzip -c ./test.zip | sed 's/;;/;0;/g' | sed 's/,/;/g' | sed 's/xy_ign/xy_ign_latitude;xy_ign_longitude/' | sed 's/xy_ign/xy_geopad_latitude;xy_geopad_longitude/' | gzip -9 >test.gz
当我解压我的文件时
gunzip test.gz
结果文件名为test,而不是test.csv
我知道我可以使用 -N 选项来检索原始文件名
gunzip -N test.gz
但是该文件与 mysql load data infile 一起使用,并且 load data infile 需要文件名才能正常工作
mysql -u user -p -e "LOAD DATA LOCAL INFILE '/tmp/test.gz' INTO TABLE test FIELDS TERMINATED BY ';' LINES TERMINATED BY '\n' ; SHOW WARNINGS" test_db
如何获得包含文件名的 gzip 文件?
最佳答案
默认情况下,gzip 会将原始文件名和文件修改时间存储在 gzip header 中。然而 gzip 需要使用文件名来调用。例如
gzip foo
mv foo.gz bar.gz
gunzip -N bar.gz
将产生foo
。
关于mysql - 在 bash 流中压缩文件时保留文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50511785/