我想将文件从文件系统压缩到新zip存档中的目录或更新旧文件。所以这是我的例子:
directory/
|-file1.ext
|-file2.ext
|-file3.ext
zip存档中的应该如下所示:
new_directory/
|-file1.ext
|-file2.ext
|-file3.ext
我可以将文件复制到新目录并从那里压缩它们,但我不希望有额外的步骤。我还没有在谷歌找到这个问题的答案。手册页中没有提到类似的东西,所以我希望有人可以帮助我。
答案 0 :(得分:2)
我不认为zip
实用程序支持这种转换。解决方法是使用符号链接:
ln -s directory new_directory
zip -r foo.zip new_directory
rm new_directory
如果其他存档格式是您的选项,那么使用tar存档会更容易一些,因为GNU tar有一个--transform
选项,它采用了它应用的sed命令在将文件添加到存档之前的文件名。
在这种情况下,您可以使用(例如)
tar czf foo.tar.gz --transform 's:^directory/:new_directory/:' directory