如何使用“zip”命令创建没有文件扩展名的 zip 存档?

Was*_*Fan 13 command-line bash zip

通常,要压缩目录,我可以执行以下操作:

zip -r archive.zip directory/
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试archive.zip像这样删除扩展名:

zip -r archive directory/
Run Code Online (Sandbox Code Playgroud)

它隐式地将.zip扩展附加到输出。有没有办法在不创建 a.zip然后重命名它的情况下做到这一点?

zip在 Ubuntu 18.04 上使用这个版本:

Copyright (c) 1990-2008 Info-ZIP - Type 'zip "-L"' for software license.
This is Zip 3.0 (July 5th 2008), by Info-ZIP.
Run Code Online (Sandbox Code Playgroud)

Ste*_*itt 26

-A--adjust-sfx)选项使zip治疗给定存档名称-是:

zip -Ar archive directory/
Run Code Online (Sandbox Code Playgroud)

即使archive不是作为自解压存档创建,这也有效。


Was*_*Fan 16

您可以让它将 zip 输出提供给 stdout,然后将其重定向到一个文件:

zip -r - -- directory/ > archive
Run Code Online (Sandbox Code Playgroud)

为清楚起见,第一个破折号指的是标准输出,这对破折号将初始参数与输入列表分开。