zip和tar如何处理符号链接(symbol link)

通过一个小实验验证 zip和tar如何处理 符号链接

建立一个目录如下

payne@payne-desktop:~/ziptest/1$ ls -l
total 4
drwxr-xr-x 2 payne payne 4096 2013-09-05 17:07 a
lrwxrwxrwx 1 payne payne    7 2013-09-05 17:07 a.link -> a/a.txt
lrwxrwxrwx 1 payne payne   17 2013-09-05 17:08 jb.sh -> /home/payne/jb.sh


zip

用下面命令打包文件

zip -r 1.zip 1/

在win7 上解开发现,symbol link 都被真实文件替代


看 zip 的 help 原来有 -y 参数,指定处理 symbol  link, 用下面的重新打包

zip -ry 1.zip 1/

在win7 上解压发现,symbol link 都变成了小的文本文件

其文本内容如下:

--- a.link   ---

a/a.txt

--- jb.sh   ---

/home/payne/jb.sh


到另外一台 linux 上用 unzip 解压此文件

symbol link 被还原

相对目录的 a/a.txt 是正常的符号链接, 而jb.sh 是错误,因为被link的文件不存在



tar

改用 tar 进行上面的测试, 发现tar是可以保存和还原 symbol link

打包命令:tar czvf 1.tar.gz 1

解包命令:tar xzvf 1.tar.gz

 

只是在 win7 中解开 1.tar.gz看, symbol link  是 0 字节, 而不像 zip 那样,保存为内容为被link文件路径的的文本

zip和tar如何处理符号链接(symbol link)_第1张图片

结论

tar 和 zip 都可以保存和还原符号链接,只是 zip 需要用 -y 参数,否则符号链接直接用被link文件替换


你可能感兴趣的:(linux)