zip -r 1.zip /home/username/the_folder
当我在这里解压1.zip
时,无论我从哪个文件夹进行解压,它都会创建/home/username/the_folder
。
我该如何压缩,指定完整的绝对路径,但仅使压缩文件包含从此处开始的文件夹结构,例如在本例中,是/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
}
zipExtraFolder 1.zip /home/username/the_folder
只需使用-j
选项,适用于OSX
,我不知道Linux是否适用。
zip -j -r 1.zip /home/username/the_folder
-r
选项一起使用时,-j
选项并不实用,因为它会压缩根目录下所有文件而不保留文件夹结构。 - jackjr300