如果我压缩一个文件夹,对正常的解压文件进行更改,然后再次压缩该文件夹,是否可以只将那些更改的文件保存在新的单独存档中?
因此第一个 zip 命令是:
zip -r folder.zip *
第二个类似于:
zip -r -u folder.zip * < changedFilesOnly.zip // would save output
答案1
是的,这是可以做到的,并且有一个zip
专门为此设计的命令开关。我将通过示例向您展示,然后您可以根据自己的目的进行调整。
我首先使用以下命令创建了我的脚本文件夹的 zip 存档(从我的主文件夹开始):
zip -r Scripts.zip Scripts
现在有 76 个项目。然后我将大约 2 个 pdf 添加到磁盘上的 Scripts 文件夹中,然后运行以下命令,并传输只是将新的和更改的文件复制到新的 zip 文件:
zip -r Scripts.zip Scripts -DF --out new.zip
输出结果如下:
updating: Scripts/ (stored 0%)
adding: Scripts/GIMP+Magazine+Issue+1.pdf (deflated 2%)
adding: Scripts/Whitepaper-CentralisedLogging-v1.pdf (deflated 10%)
现在只有这 2 个新文件在 中new.zip
,它们尚未添加到原始 zip 中。在命令中,选项-DF
允许我们创建一个使用开关指定的“差异存档” --out
,以便任何存在于磁盘文件夹中但不在原始 zip 中的新文件都转到新 zip。因此,根据手册页,确实可以
创建一个包含自创建原始档案以来所有新文件和更改文件的档案。要实现此功能,输入文件列表和当前目录必须与原始 zip 操作期间的相同。
对于 zip 有一些有趣的选项可以尝试,所以请参阅man zip
或Ubuntu 在线手册页。