如何将文件添加到.gz归档并删除原始文件
将指定文件添加到gz归档并删除原文件的操作方法
首先明确核心认知:纯.gz 是gzip工具输出的单文件压缩格式,本身不支持多文件归档、追加文件的能力。日常使用的带多文件功能的.gz类归档,本质是通过tar工具将多个文件打包为无压缩的tar归档,再用gzip压缩得到的tar.gz(也称.tgz)文件。
场景1:将指定文件压缩为独立的gz文件,压缩完成后删除原文件
直接执行gzip命令即可,gzip的默认行为就是压缩成功后自动删除原文件:gzip '<09/12/2020>_master'
执行完成后会在同目录下生成<09/12/2020>_master.gz压缩文件,原始文件会被自动删除。如果需要显式确认删除动作,可以在压缩完成后手动执行删除命令:rm '<09/12/2020>_master'
场景2:将指定文件添加到已有的tar.gz归档包中,完成后删除原文件
因为tar.gz是对tar包的二次压缩,无法直接向已压缩的包内追加文件,需要按顺序操作:
- 假设现有归档文件为
archive.tar.gz,首先对该文件执行解压,得到内部的无压缩tar归档:gunzip archive.tar.gz - 将目标文件追加到解出的tar归档内:
tar -rf archive.tar '<09/12/2020>_master' - 对更新后的tar归档重新执行gzip压缩,得到更新后的tar.gz归档:
gzip archive.tar - 确认新的
archive.tar.gz内文件完整无误后,删除原始的待添加文件:rm '<09/12/2020>_master'
注意事项
因为文件名包含<>这类shell特殊字符,所有引用该文件的命令都需要用单引号将文件名包裹,避免shell将特殊字符解析为重定向、通配符等指令导致操作报错。
内容的提问来源于stack exchange,提问作者saliha tahir
相关产品推荐
相关产品推荐

