我正在创建一个 tar 文件,然后对 tar 文件进行 gzip 压缩。因此我得到了一个 .tgz 文件,现在我想删除之前的 tar 文件。
${gzipExe} -f --rsyncable $tarname.TAR --stdout >> $tarname.TGZ
答案1
我通常使用 tar 命令中的“z”参数同时压缩文件:
tar czvf allmyfiles.tar.gz *
上述命令创建一个名为 allmyfiles.tar.gz 的新存档文件,其中包含当前文件夹中的所有文件,并将其压缩。
否则,只需使用下一个命令删除.tar 文件:
$rm $tarname.TAR
请注意,.tar.gz 比 .tgz 更常用。
答案2
您有几个选择。假设您需要该--rsyncable
选项:
- 一步完成压缩和 tar(无需中间 tar 文件):
REM 我认为您使用的是 Windows,所以...... 设置 GZIP=--rsyncable tar czf 文件.tar.gz 文件
- 将 tar 的输出通过管道传输到 gzip(无需中间 tar 文件)
tar c 文件 | gzip --rsyncable > file.tar.gz
- 分两步归档和压缩。
tar -cf 文件.tar 文件 gzip -f --rsyncable 文件.tar
如果您只是运行gzip file.tar
gzip gzip --stdout file.tar > file.tar.gz
,将会删除 tar 文件。
还要注意,gzip --stdout file.tar >> file.tar.gz
在您的问题中使用 as 实际上会将新的 gzip 内容附加到 file.tar.gz,这可能不是您想要的。