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

内森

我从无法更改目录的脚本中调用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中的结构

用户名

正如您在注释中指出的那样,您现在知道如何使用脚本更改目录,我将使用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的手册页在线

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用相对于C文件而不是工作目录的路径打开文件

如何在PRO文件中获取目标目录

相对于Python中的父目录设置子目录的文件的工作路径

如何在C中相对于给定目录检索文件路径

php require_once包含相对于文件而不是工作目录的文件

Matlab:访问相对于工作目录的文件

如何获取相对于工作目录的路径?

如何使相对于js文件目录的ajax调用URL

如何同时复制文件并创建目标目录?

如何创建仅保留目标目录及以下目录结构的ZIP存档?

如何在FtpMessageHandler中设置目标目录?

解决相对于其他路径而不是当前工作目录的相对路径

如何在目标目录中递归地压缩所有文件?

如何在Nuget中为源文件指定其他目标目录安装?

为“ zip”命令输出指定目标目录(创建的Zip文件)

如何在将工件下载到目标目录之前清理目标目录?

创建相对于当前目录的符号链接

gnuplot脚本:使用相对于文件而不是执行目录的路径?

获取相对于批处理文件的路径-不工作目录

确定文件相对于目录的路径,包括符号链接

复制多个文件并同时创建目标目录?

symlink的目标相对于目标的父目录是否相对?为什么?

Require.js-如何相对于模块目录加载

如何从git status获取相对于当前目录的路径?

如何压缩文件而不在zip目录中创建目录?

如何在Play Framework 2.4中使用相对于项目根目录的路径到H2数据库文件配置?

在Perl中获取相对于主目录的路径

相对于 ASP.NET 中的根目录

在相对于主脚本的目录中调用脚本