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 了。
分享到:
相关推荐
7. 保留文件权限和时间戳:`unzip -p file.zip | sudo tee -a /path/to/extract > /dev/null`会保留文件的原始权限和时间戳,这在跨系统传输时很有用。 除了unzip,还有其他的ZIP处理工具,例如p7zip,它提供了更...
总结,离线安装Linux上的VSFTPD服务涉及的关键步骤包括:下载RPM安装包,创建包含所有依赖的ZIP文件,解压并使用RPM命令安装,以及最后的配置和启动服务。这种离线安装方法对于在无网络连接或者网络限制的环境中部署...
- `.zip`文件:使用`unzip`解压。 - `.tgz`文件:使用`tar -zcvf`压缩。 - `.jar`文件:同样使用`unzip`解压。 - `.tar.bz2`文件:使用`bzip2 -d`解压。 4. **ls -l命令输出的文件信息解析**: - **第一行**:...
运算符**:无论前一个命令是否成功,都会继续执行下一个命令。 **示例**: - 移动目录并删除原目录(使用 &&): ```bash sudo mv /home/test /home/ubuntu/bak && sudo rm -rf /home/test ``` - 检查用户...
### Ubuntu 下配置Rsync服务的方法 #### 一、概述 在Ubuntu系统中配置Rsync服务是一种常见的需求,尤其是在需要在不同主机间同步数据时。Rsync不仅能够高效地完成文件同步工作,还提供了多种功能选项以满足不同...
9. **权限**: 控制用户对文件的访问权限,包括读、写和执行。 #### 五、命令行 1. **Shell、Console、Terminal**: - **Shell**: 用户与系统交互的界面。 - **Console**: 终端设备,通常指物理连接到系统的键盘和...
- **用途**: `zip` 命令用于创建 zip 格式的压缩文件。 - **选项**: `-r` 递归压缩目录; `-j` 不保留路径信息。 - **应用场景**: 创建 zip 压缩文件。 **28. `unzip` 解压缩** - **用途**: `unzip` 命令用于解压 ...
2. **unzip**、**gunzip**、**unarj**:解压ZIP、GZIP和ARJ格式的文件。 3. **mtools**:处理MS-DOS文件系统。 4. **man**:查看命令的手册页。 5. **unendcode**、**uudecode**:解码uuencode和base64编码的数据...
- **运行 .sh 脚本文件:** 给予执行权限 (`chmod +x script.sh`) 并运行 (`./script.sh`)。 #### 七、系统个性化与优化 - **调整桌面图标大小:** 通过桌面设置或第三方工具调整。 - **鼠标指针设置:** 更改鼠标...
此外,也可以通过第三方压缩工具(如7-Zip或Linux下的归档管理器)直接解包DEB文件,但这不会保留文件的属性信息。 #### 五、DEB文件制作步骤 1. **准备目录**:创建一个主目录,例如`tmp`,并在其中新建一个名为`...
例如,在基于Debian的系统(如Ubuntu)上,可以使用`apt`命令: ```bash sudo apt update sudo apt install tcpdump ``` 在基于RPM的系统(如CentOS或Fedora)上,使用`yum`或`dnf`: ```bash sudo yum install ...
这个名为"linuxshiyan.zip"的压缩包文件包含了大学Linux实验的相关内容,重点聚焦于Linux系统的操作、备份与还原,以及在Linux环境下进行编程的实践。让我们深入探讨这些知识点。 首先,关于Linux系统的基本操作,...
5. 使用`amdvbflash` 命令读取新的BIOS文件,例如:`amdvbflash -r new_bios.rom`,这将创建一个名为`new_bios.rom` 的备份文件。 6. 然后,用新的BIOS文件覆盖现有的BIOS:`amdvbflash -p -f new_bios.rom`。`-p` ...
请注意,由于Jetson平台可能采用不同的操作系统版本(如Ubuntu或Debian),所以在运行前可能需要根据具体环境调整权限,例如使用`chmod +x`命令赋予可执行权限: ```bash cd code-oss/bin chmod +x code-oss ./code...
Linux下的unrar是一款用于解压缩RAR格式文件的工具,它提供了命令行接口,方便用户在终端环境下处理RAR档案。在Windows系统中下载`unrarsrc-5.4.5`压缩包后,你需要先在Windows环境下解压,然后将解压后的文件传输到...
locate \*.ps 寻找以 '.ps' 结尾的文件 - 先运行 'updatedb' 命令 whereis halt 显示一个二进制文件、源码或man的位置 which halt 显示一个二进制文件或可执行文件的完整路径 挂载一个文件系统 mount /dev/...
- **实践**: 查看设备文件路径通常是`/dev/`目录下的文件。 **2. 链接文件** - **概述**: 包括硬链接和符号链接两种类型。 - **实践**: 创建符号链接使用`ln -s source target`命令。 **3. setUid、setGid文件...
Linux Mint 11是Linux Mint系列的一个重要版本,它基于Ubuntu 11.04(Natty Narwhal),提供了一种用户友好、美观且功能丰富的操作系统体验。这个官方中文手册是为那些想要深入理解Linux Mint 11系统操作、配置和...
• Linux (tested on Linux Ubuntu Dapper Drake) Supported Supported Supported Supported Development Development Development Development Environments Environments Environments Environments Eclipse IDE o...
通过/dev/i2c-n节点,用户可以在userspace直接访问板上的i2c外设寄存器,主要是透过I2C_RDWR这个IO控制命令将i2c_msg数组传递给kernel去执行。 开发板的/dev/i2c-1总线下挂有一片I2C的RTC:pcf8563。 root@android...