zip -r 1.zip /home/username/the_folder
在这里,当我解压缩1.zip
时,它会从我解压缩的文件夹中创建/home/username/the_folder
。
我如何压缩,说明完整的绝对路径,但是让zip只包含从中开始的文件夹结构,例如/home/username
?
这样我可以在任何我想要的路径,解压缩,它只会创建the_folder
,而不是/home/username/the_folder
。
答案 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)
这个怎么样:
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