如何使用 Ant tar 任务并保留文件权限?
当然可以使用 exec 任务来完成,但我的问题是:
是否可以使用 tar 任务来完成?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
当然可以使用 exec 任务来完成,但我的问题是:
是否可以使用 tar 任务来完成?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(3)
我认为没有办法保留现有权限,根据 复制任务的注释:
但是 tar 任务 可以执行一个或多个
tarfileset
元素。可以使用filemode
和/或dirmode
属性定义tarfileset
来指定 unix 权限。如果您指定仅匹配这些文件的多个包含来获取每组所需的权限,则该组中的文件将包含在这些权限中。I don't think there is a way to retain existing permissions, per this note from the copy task:
However the tar task can take one or more
tarfileset
elements. Thetarfileset
can be defined with afilemode
and/ordirmode
attribute to specify the unix permissions. If you specify multiple includes matching only those files to get each set of required permissions, the files in that set will be included with those permissions.这是不可能的。缺乏许可使得 ant tar 任务对我来说几乎毫无用处。如果不使用 exec 任务执行操作系统 tar 就无法做到这一点:
几乎所有已知的操作系统都有 gnu tar 二进制文件。将其中之一放入您的版本控制系统中,并根据您的操作系统使用它。是的,Ant 每次运行时都需要派生一个进程。
It is impossible. This lack of permission makes ant tar task almost useless for me. There's no way to do it without executing the operating system tar with the exec task:
There are gnu tar binaries for almost all operating systems known to man. Put one of them in your version control system and use it depending in your operating system. Yes, Ant will need to fork a process every time it is run.
使用 tarfileset 对我们的项目有用。下面是一个工作示例,以防有人需要:
在此示例中,includelist.txt 用于告知 tar 文件中要包含哪些文件。所有带有 *.sh 扩展名的文件都将具有用户和组的读取和执行权限 (550)。
希望这对某人有帮助。
Using tarfileset worked for our project. Here's a working example in case someone needs it:
In this example, includelist.txt is used to tell which files to include in the tar file. All the files with *.sh extension will have Read and Execute permission (550) for the user and the group.
Hope this helps someone.