Zip说明绝对路径,但只保留其中的一部分

时间:2012-06-28 17:08:31

标签: linux zip

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

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

我如何压缩,说明完整的绝对路径,但是让zip只包含从中开始的文件夹结构,例如/home/username

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

4 个答案:

答案 0 :(得分:12)

使用此命令:

cd path_under_folder_to_zip && \
zip -r 1.zip folder_to_zip >/dev/null && \
mv 1.zip my_current_path

答案 1 :(得分:6)

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

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

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

答案 2 :(得分:1)

  1. 列表项
  2. 这个怎么样:

    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
    

答案 3 :(得分:0)

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

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