`

ubuntu 下zip 命令,保留文件权限

阅读更多

ant的build.xml文件,需求是先改变文件的权限为 可执行,然后压缩。

问题是 压缩 后可执行权限就消失了。

我分析, 文件的权限 保存在 filenode 中,但是 压缩 文件只是针对内容,而解压缩,某种意义上说等于创建了新文件,所以都会使文件的权限消失。

领导说,‘我想想'.

领导真不是盖的,人家一想就搞定了。反正也是,国外的资源丰富,他对 ubuntu 也比我熟悉。

 

人家的解决方案是在ant 脚本中调用了 exec 去执行系统命令。

 

  <chmod dir="${folder}/bin" perm="ugo+rx" excludes="*.exe, *.bat" />
  <exec executable="zip" dir=".">
            <arg line="${folder}.zip -qr -9 ${folder}" />
   </exec>
 

然后我自己在控制台执行命令进行压缩,再解压缩后,文件的权限还在。

 

 

$zip -r tal.zip Tal-Apache-Archiva-V5.0.0/

$unzip -o tal.zip  -d uc
$ls uc/Tal-Apache-Archiva-V5.0.0/bin -a

总计 1044
drwxr-xr-x 2 jill jill   4096 2011-11-24 10:41 .
drwxr-xr-x 9 jill jill   4096 2011-11-24 10:41 ..
-rw-r--r-- 1 jill jill   2055 2011-10-18 15:16 archiva.bat
-rwxr-xr-x 1 jill jill  15390 2011-10-18 15:16 archiva.sh
-rwxr-xr-x 1 jill jill  99401 2011-10-18 15:16 wrapper-linux-x86-32
-rwxr-xr-x 1 jill jill 111027 2011-10-18 15:16 wrapper-linux-x86-64
-rwxr-xr-x 1 jill jill 233604 2011-10-18 15:16 wrapper-macosx-universal-32
-rwxr-xr-x 1 jill jill 112536 2011-10-18 15:16 wrapper-solaris-sparc-32
-rwxr-xr-x 1 jill jill 148512 2011-10-18 15:16 wrapper-solaris-sparc-64
-rwxr-xr-x 1 jill jill 110992 2011-10-18 15:16 wrapper-solaris-x86-32
-rw-r--r-- 1 jill jill 204800 2011-10-18 15:16 wrapper-windows-x86-32.exe
 

这说明,ubuntu本身的zip是能够保留文件的权限的,只是ant的zip 任务不行。所以在ant中调用ubuntu 自身的zip 来完成这个任务,就OK 了。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics