如何在相对于目标目录而不是工作目录的zip文件中创建目录


25

我从无法更改目录的脚本中调用zip命令。我需要data/kit123/从数据所在的目录中创建内容的zip文件,但我希望zip的内容仅是的内容kit123,并具有相对于的路径kit123

这是目录结构

myworkingdir
    data
        kit123
            kitpart1
                file.xcf
                anotherfile.xcf
            kitpart2
                ...
        kit124
            ...

我的脚本在myworkingdir中运行,无法更改目录。

如果我打电话

zip -r kit123.zip data/kit123

那么zip文件中的结构将是

data
    kit123
        kitpart1
            file.xcf
            anotherfile.xcf
        kitpart2

但我希望它成为

kit123
    kitpart1
        file.xcf
        anotherfile.xcf
    kitpart2

我可以使用一个zip选项来完成此操作吗?应该依赖我的工作目录似乎很奇怪

我知道不是-j。破坏了kit123中的结构


ah,没关系,我确实弄清楚了如何更改dir(在Python中),我的权限组织得不好。我仍然想知道zip是否具有这样的选项。
内森

Answers:


18

正如您在注释中指出的那样,您现在知道如何使用脚本更改目录,我将使用zip解释有关相对路径的情况。

它可能比较容易打开终端cdkit123; 您必须将目标目录设置为工作目录-无法从主目录的底部运行命令,否则它将拾取的所有路径。/home/$USER/..如果使用此-j选项,它将删除所有路径,因为没有不能真正等同于tar选项,--strip通过它可以指定不同级别的路径删除。

因此,请CD到您的目标目录(kit123)并输入:

zip -r kit123.zip *

这将递归(-r)保留*当前目录(kit123)中的所有()文件和文件目录,并且由于相对路径(-p)会自动保留,除非-j存在该选项,否则目录结构将如您所愿。Kit123以及kitpart1带有自己文件的子文件夹()将出现:

kit123
    kitpart1
        file.xcf
        anotherfile.xcf
    kitpart2

您可以使用来检查zip文件的内容unzip -l zipfile.zip

有关适用于其他选项的详细信息zip,请参阅man zipUbuntu的手册页在线

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.