Unix zip:将多个文件夹压缩成一个 zip 文件,而无需创建包含顶部文件夹

Unix zip:将多个文件夹压缩成一个 zip 文件,而无需创建包含顶部文件夹

我有一个这样的文件夹:

-resources

--graphics

--sounds

我想将图形和声音文件夹压缩成一个名为 resources.zip 的 .zip 文件,我将使用它

zip -r resources.zip graphics/ sounds/

但是当我解压 /home/me 下的 resources.zip 时,它会像这样:

-home

--me

---resources

----graphics

----sounds

我不想在解压时创建资源文件夹,我在压缩时可以做些什么来实现这一点?

答案1

是的,这是 的默认行为unzip。遗憾的是,没有办法选择性地忽略压缩文件的原始路径。但是,您可以告诉 unzip 忽略任何路径:

unzip -j resources.zip

这会将所有文件解压到 $pwd 中。这可能不是您想要的。您可以通过如下方式压缩来实现所需的结果:

zip -j resources.zip ~/resources/*

这将创建一个 zip 文件,保存 ~/resources/ 中的所有文件和目录,但会丢弃路径 ~/resources/,因此在提取时您只会得到 sounds/ 和 graphics/。

相关内容