如何在Ubuntu中创建一个空的zip文件



我有一个场景,我必须首先创建一个zip文件,然后,当我的文件从另一个位置到达时,它们将被添加到zip中。

第二部分使用-u参数完成:

zip -u {{project}}.zip {{file}}

该命令的--help也没有太大帮助:

user@host:~# zip --help
Copyright (c) 1990-2008 Info-ZIP - Type 'zip "-L"' for software license.
Zip 3.0 (July 5th 2008). Usage:
zip [-options] [-b path] [-t mmddyyyy] [-n suffixes] [zipfile list] [-xi list]
The default action is to add or replace zipfile entries from list, which
can include the special name - to compress standard input.
If zipfile and list are omitted, zip compresses stdin to stdout.
-f   freshen: only changed files  -u   update: only changed or new files
-d   delete entries in zipfile    -m   move into zipfile (delete OS files)
-r   recurse into directories     -j   junk (don't record) directory names
-0   store only                   -l   convert LF to CR LF (-ll CR LF to LF)
-1   compress faster              -9   compress better
-q   quiet operation              -v   verbose operation/print version info
-c   add one-line comments        -z   add zipfile comment
-@   read names from stdin        -o   make zipfile as old as latest entry
-x   exclude the following names  -i   include only the following names
-F   fix zipfile (-FF try harder) -D   do not add directory entries
-A   adjust self-extracting exe   -J   junk zipfile prefix (unzipsfx)
-T   test zipfile integrity       -X   eXclude eXtra file attributes
-y   store symbolic links as the link instead of the referenced file
-e   encrypt                      -n   don't compress these suffixes
-h2  show more help

我已经用肮脏的方式完成了:

创建了一个名为emptyfile的文件,其中包含一个字节(空白(。

然后我将该文件添加到zip文件中:

zip -q {{project}}.zip emptyfile

最终删除:

zip -dq {{project}}.zip emptyfile

(如果省略-q,则会收到警告:zip warning: zip file empty(

通过这种方式,我得到了一个空的zip文件,可以-u更新。

所有这些都可以转换为oneliner(来自GaspardP的想法(:

echo | zip -q > {{project}}.zip && zip -dq {{project}}.zip -

有更优雅的方法吗?

相关内容

最新更新