gpt4 book ai didi

ant - 有没有 Ant 任务可以复制不丢失权限

转载 作者:行者123 更新时间:2023-12-04 14:16:59 29 4
gpt4 key购买 nike

我知道我可以 <exec executable="cp" failonerror="true"> ,但是,我真的宁愿有一个任务,我可以从任何可以使用所有(或至少大部分)属性的操作系统调用 copy ,但这并没有消除 unix 上的权限。

我想知道是否已经有解决方案,或者我必须自己编写 copy2 .

因为我有点害怕,没有什么“现成的”。我们有这段代码,但它只处理目录到目录的复制或文件到文件的复制,具有自定义属性,并且不执行复制所做的任何其他整洁的事情。

<!-- ==================================================================== -->
<!-- Copy files from A to B -->
<!-- <copy> would do this job, if it weren't such a useless pile of fail -->
<!-- and could manage to preserve execute bits on Linux -->
<!-- ==================================================================== -->
<macrodef name="internal-copydir">
<attribute name="fromdir" default="NOT SET" />
<attribute name="todir" default="NOT SET" />
<sequential>
<if>
<os family="windows" />
<then>
<copy todir="@{todir}">
<fileset dir="@{fromdir}" />
</copy>
</then>
<else>
<exec executable="rsync" failonerror="true">
<arg value="-a" />
<arg value="@{fromdir}/" />
<arg value="@{todir}/" />
</exec>
</else>
</if>
</sequential>
</macrodef>

<!-- ==================================================================== -->
<!-- Copy file from A to B -->
<!-- <copy> would do this job, if it weren't such a useless pile of fail -->
<!-- and could manage to preserve execute bits on Linux -->
<!-- ==================================================================== -->
<macrodef name="internal-copyfile">
<attribute name="file" default="NOT SET" />
<attribute name="tofile" default="NOT SET" />
<sequential>
<if>
<os family="windows" />
<then>
<copy file="@{file}" tofile="@{tofile}"/>
</then>
<else>
<exec executable="cp" failonerror="true">
<arg value="@{file}" />
<arg value="@{tofile}" />
</exec>
</else>
</if>
</sequential>
</macrodef>

我也写了这一篇。
<!-- ==================================================================== -->
<!-- Copy file to a directory -->
<!-- <copy> would do this job, if it weren't such a useless pile of fail -->
<!-- and could manage to preserve execute bits on Linux -->
<!-- ==================================================================== -->
<macrodef name="internal-copyfiletodir">
<attribute name="file" default="NOT SET" />
<attribute name="todir" default="NOT SET" />
<sequential>
<if>
<os family="windows" />
<then>
<copy file="@{file}" todir="@{todir}"/>
</then>
<else>
<exec executable="cp" failonerror="true">
<arg value="@{file}" />
<arg value="@{todir}/" />
</exec>
</else>
</if>
</sequential>
</macrodef>

最佳答案

我不知道一个。正如 Ant 文档中提到的,这是因为在 JRE 中没有操作文件权限的机制。 Ant Copy task

Java 7 为这类事情提供了更好的支持,所以也许在 Ant 的 future 版本中这将成为可能。这可能需要很长时间,因为我认为 Ant 只会迁移到 Java 5 的 1.9 版。

我想您可能能够通过有条件地运行基于操作系统的操作系统特定命令来模拟您正在寻找的行为?

关于ant - 有没有 Ant 任务可以复制不丢失权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9999928/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com