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