12
zip -r 1.zip /home/username/the_folder

在这里,当我解压缩时1.zip,它将/home/username/the_folder从我解压缩的任何文件夹创建。

如何压缩,说明完整的绝对路径,但使 zip 仅包含文件夹结构,例如在这种情况下,/home/username

这样我就可以在我想要的任何路径上,解压缩它只会创建the_folder,而不是/home/username/the_folder

4

4 回答 4

12

使用这个命令:

cd path_under_folder_to_zip && \
zip -r 1.zip folder_to_zip >/dev/null && \
mv 1.zip my_current_path
于 2012-06-29T17:05:05.797 回答
6

指定要压缩的文件时使用相对路径。

cd /home/username
zip -r 1.zip ./the_folder

然后,当您解压缩时,它将是一个相对路径,从您在解压缩时所在的任何文件夹开始。

于 2012-06-28T17:17:19.607 回答
1
  1. 项目清单

这个怎么样:

function zipExtraFolder {
    if [ $# -lt 2 ]; then
        echo "provide at least two arguments"
        return
    fi
    folder=$2
    mkdir del
    echo cp -r `dirname $folder` del
    cd del
    echo zip -r ../$1 .
    cd -
    rm -rf del
}

将上面定义为 .bashrc 中的 shell 函数,您应该可以随时使用它。用法如下所示。

zipExtraFolder 1.zip /home/username/the_folder
于 2012-06-28T17:29:41.263 回答
1

只需使用该-j选项,适用于OSX,我不了解 linux。

zip -j -r 1.zip /home/username/the_folder

于 2012-06-28T18:16:06.127 回答