`

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 了。

分享到:
评论

相关推荐

    linux自带的unzip命令可以解压windows下的zip格式的压缩文件。

    7. 保留文件权限和时间戳:`unzip -p file.zip | sudo tee -a /path/to/extract &gt; /dev/null`会保留文件的原始权限和时间戳,这在跨系统传输时很有用。 除了unzip,还有其他的ZIP处理工具,例如p7zip,它提供了更...

    linux离线安装vsftpd包.zip

    总结,离线安装Linux上的VSFTPD服务涉及的关键步骤包括:下载RPM安装包,创建包含所有依赖的ZIP文件,解压并使用RPM命令安装,以及最后的配置和启动服务。这种离线安装方法对于在无网络连接或者网络限制的环境中部署...

    Ubuntu学习问题

    - `.zip`文件:使用`unzip`解压。 - `.tgz`文件:使用`tar -zcvf`压缩。 - `.jar`文件:同样使用`unzip`解压。 - `.tar.bz2`文件:使用`bzip2 -d`解压。 4. **ls -l命令输出的文件信息解析**: - **第一行**:...

    a notebook about i how to learn ubuntu

    运算符**:无论前一个命令是否成功,都会继续执行下一个命令。 **示例**: - 移动目录并删除原目录(使用 &&): ```bash sudo mv /home/test /home/ubuntu/bak && sudo rm -rf /home/test ``` - 检查用户...

    Ubuntu 下配置Rsync服务的方法

    ### Ubuntu 下配置Rsync服务的方法 #### 一、概述 在Ubuntu系统中配置Rsync服务是一种常见的需求,尤其是在需要在不同主机间同步数据时。Rsync不仅能够高效地完成文件同步工作,还提供了多种功能选项以满足不同...

    ubuntu教程

    9. **权限**: 控制用户对文件的访问权限,包括读、写和执行。 #### 五、命令行 1. **Shell、Console、Terminal**: - **Shell**: 用户与系统交互的界面。 - **Console**: 终端设备,通常指物理连接到系统的键盘和...

    运维常用工具和命令

    - **用途**: `zip` 命令用于创建 zip 格式的压缩文件。 - **选项**: `-r` 递归压缩目录; `-j` 不保留路径信息。 - **应用场景**: 创建 zip 压缩文件。 **28. `unzip` 解压缩** - **用途**: `unzip` 命令用于解压 ...

    常用命令001

    2. **unzip**、**gunzip**、**unarj**:解压ZIP、GZIP和ARJ格式的文件。 3. **mtools**:处理MS-DOS文件系统。 4. **man**:查看命令的手册页。 5. **unendcode**、**uudecode**:解码uuencode和base64编码的数据...

    Ubuntu_10.04_安装手记

    - **运行 .sh 脚本文件:** 给予执行权限 (`chmod +x script.sh`) 并运行 (`./script.sh`)。 #### 七、系统个性化与优化 - **调整桌面图标大小:** 通过桌面设置或第三方工具调整。 - **鼠标指针设置:** 更改鼠标...

    如何创建cydia源适用的deb包文档

    此外,也可以通过第三方压缩工具(如7-Zip或Linux下的归档管理器)直接解包DEB文件,但这不会保留文件的属性信息。 #### 五、DEB文件制作步骤 1. **准备目录**:创建一个主目录,例如`tmp`,并在其中新建一个名为`...

    服务端tcpdump.zip

    例如,在基于Debian的系统(如Ubuntu)上,可以使用`apt`命令: ```bash sudo apt update sudo apt install tcpdump ``` 在基于RPM的系统(如CentOS或Fedora)上,使用`yum`或`dnf`: ```bash sudo yum install ...

    linuxshiyan.zip_Linux的备份

    这个名为"linuxshiyan.zip"的压缩包文件包含了大学Linux实验的相关内容,重点聚焦于Linux系统的操作、备份与还原,以及在Linux环境下进行编程的实践。让我们深入探讨这些知识点。 首先,关于Linux系统的基本操作,...

    amdvbflash_linux_4.69.zip

    5. 使用`amdvbflash` 命令读取新的BIOS文件,例如:`amdvbflash -r new_bios.rom`,这将创建一个名为`new_bios.rom` 的备份文件。 6. 然后,用新的BIOS文件覆盖现有的BIOS:`amdvbflash -p -f new_bios.rom`。`-p` ...

    code-oss.zip

    请注意,由于Jetson平台可能采用不同的操作系统版本(如Ubuntu或Debian),所以在运行前可能需要根据具体环境调整权限,例如使用`chmod +x`命令赋予可执行权限: ```bash cd code-oss/bin chmod +x code-oss ./code...

    linux unrar

    Linux下的unrar是一款用于解压缩RAR格式文件的工具,它提供了命令行接口,方便用户在终端环境下处理RAR档案。在Windows系统中下载`unrarsrc-5.4.5`压缩包后,你需要先在Windows环境下解压,然后将解压后的文件传输到...

    linux.chm文档

    locate \*.ps 寻找以 '.ps' 结尾的文件 - 先运行 'updatedb' 命令 whereis halt 显示一个二进制文件、源码或man的位置 which halt 显示一个二进制文件或可执行文件的完整路径 挂载一个文件系统 mount /dev/...

    Linux 操作系统技术合集.pdf

    - **实践**: 查看设备文件路径通常是`/dev/`目录下的文件。 **2. 链接文件** - **概述**: 包括硬链接和符号链接两种类型。 - **实践**: 创建符号链接使用`ln -s source target`命令。 **3. setUid、setGid文件...

    Linux_Mint11官方中文手册.zip

    Linux Mint 11是Linux Mint系列的一个重要版本,它基于Ubuntu 11.04(Natty Narwhal),提供了一种用户友好、美观且功能丰富的操作系统体验。这个官方中文手册是为那些想要深入理解Linux Mint 11系统操作、配置和...

    新版Android开发教程.rar

    • Linux (tested on Linux Ubuntu Dapper Drake) Supported Supported Supported Supported Development Development Development Development Environments Environments Environments Environments Eclipse IDE o...

    pcf8563_i2c1_r8_ruoge_ov2640通过给RTC驱动增加设备节点读取秒钟成功+直接读取I2C1获取秒钟值20160626_2201.7z

    通过/dev/i2c-n节点,用户可以在userspace直接访问板上的i2c外设寄存器,主要是透过I2C_RDWR这个IO控制命令将i2c_msg数组传递给kernel去执行。 开发板的/dev/i2c-1总线下挂有一片I2C的RTC:pcf8563。 root@android...

Global site tag (gtag.js) - Google Analytics