通常,要压缩目录,我可以这样做:
zip -r archive.zip directory/
archive.zip
但是,如果我尝试像这样删除扩展:
zip -r archive directory/
它隐式地将.zip
扩展附加到输出中。有没有办法在不创建.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.
答案1
-A
( --adjust-sfx
) 选项导致按zip
原样处理给定的存档名称:
zip -Ar archive directory/
即使archive
未创建为自解压存档,此功能也有效。
答案2
您可以让它将 zip 输出提供到 stdout,然后将其重定向到文件:
zip -r - -- directory/ > archive
为了清楚起见,第一个破折号指的是标准输出,一对破折号将初始参数与输入列表分开。