增量创建 zip 文件

增量创建 zip 文件

我目前在 S3 上有一个大目录(>100GB)。我想创建该目录的 zip 存档。

目前,我下载该目录的内容并在服务器上创建一个临时(临时)目录。然后,我使用该zip实用程序来归档临时目录。这意味着在高峰期,我的磁盘使用量是目录大小的 2 倍。

我没有考虑建立临时目录,而是考虑逐步构建 zip 存档。这将使磁盘使用量减半,因为我只需要存储 zip 存档。

首先,这可能吗?其次,这种方法是否有我没有看到的缺点,例如性能等?

提前致谢。

答案1

对的,这是可能的。每次发出时zip archive.zip filezip都会尝试将其添加filearchive.zip.如果存档不存在,则会创建它,如果存在 - 将添加文件。

因此,假设您将文件下载到某个临时文件夹:

$ zip -j big.zip /tmp/download/file.dat  

在这里,-j将“垃圾路径”/tmp/download/路径big.zip并将仅包含file.dat

如果您想创建带有路径的存档,那么您必须有一个工作目录~/work,因此您希望在存档中看到的路径是相对于该工作目录的。然后您将文件下载或创建为~/work/some/path/file.dat.并做:

# first you need to be in the work directory, 
$ cd ~/work

# create (download) the file into relative path
$ mkdir -p some/path
$ touch some/path/file

# do the archiving
$ zip ~/big.zip some/path/file.dat

# remove the file and path to it
$ rm some/path/file.dat
$ rmdir -p some/path

# repeat for another file

相关内容