$(which zip) -r ../data.zip .
Run Code Online (Sandbox Code Playgroud)
文件夹的内容随着时间的推移而动态变化,我首先使用包含huge.pdf
文件对其进行了测试,然后将其删除,但仍然data.zip
保持相同的大小。解压时我可以在huge.pdf
那里看到文件。
我希望 zip 命令完全覆盖现有的存档。
我在应用程序(nodejs)中执行这个shell命令
编辑:我不认为链接的问题是重复的。
首先请注意,执行zip
through$(which zip)
与执行 just 相同zip
。该which
实用程序在用户路径中定位程序文件。
给定现有的 Zip 存档,zip
将添加新文件、替换现有文件,但如果这些文件已从文件系统中删除,则不会删除存档中的文件。
要从 Zip 存档中删除文件:
$ zip -d archive.zip filename
Run Code Online (Sandbox Code Playgroud)
您显然也可以rm
在重新创建存档之前删除存档。
对于您的 NodeJS 脚本,您可以使用
rm -f ../data.zip && zip -r ../data.zip .
Run Code Online (Sandbox Code Playgroud)
在-f
以标志rm
品牌rm
如果归档文件不存在,不会失败。