zip -r 1.zip /home/username/the_folder
在这里,当我解压缩时1.zip
,它将/home/username/the_folder
从我解压缩的任何文件夹创建。
如何压缩,说明完整的绝对路径,但使 zip 仅包含文件夹结构,例如在这种情况下,/home/username
?
这样我就可以在我想要的任何路径上,解压缩它只会创建the_folder
,而不是/home/username/the_folder
。
使用这个命令:
cd path_under_folder_to_zip && \
zip -r 1.zip folder_to_zip >/dev/null && \
mv 1.zip my_current_path
指定要压缩的文件时使用相对路径。
cd /home/username
zip -r 1.zip ./the_folder
然后,当您解压缩时,它将是一个相对路径,从您在解压缩时所在的任何文件夹开始。
这个怎么样:
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
只需使用该-j
选项,适用于OSX
,我不了解 linux。
zip -j -r 1.zip /home/username/the_folder