Shell Script .zip archive保留文件夹结构(Mac OS X)

时间:2011-10-06 12:18:55

标签: shell command zip options

我创建了一个AppleScript,它将所选源文件夹的带时间戳的.zip存档创建到目标文件夹中。这一切都运作良好。

我注意到创建的.zip存档具有指向所选源文件夹的完整路径。例如,如果我在以下位置选择了一个文件夹:

/库/ Web服务器/文档/客户端/站点/

当我只想要“site”文件夹及其内容时,.zip存档还会包含这些文件夹中的每一个。我已经查看了zip命令的选项,但无法获得正确的组合。如果我使用“-jr”,我只需获取“site”文件夹,但随后我将所有子文件夹中的所有子文件放入同一文件夹中。

以下是AppleScript的相关部分:

set shellscript to ("/usr/bin/zip -r " & zipFolder & " " & sourceFolder)
do shell script shellscript

如果您要右键/控制单击文件夹并选择“压缩”foldername“选项”,我基本上会得到相同的结果。我正在使用Mac OS X 10.6.8。

谢谢, 史蒂夫

1 个答案:

答案 0 :(得分:0)

使用zip时,默认情况下路径是相对的。但是在AppleScript中,无论是否有意,您都可以从根目录运行shell脚本。因此,由于您从root用户提供了sourceFolder的完整路径,因此您将获得zip存档中的绝对路径。

首先更改为包含站点文件夹的文件夹,然后使用相对路径压缩。