gpt4 book ai didi

unix - 如何使用文件集中的 apache ant 创建多个新的符号链接(symbolic link)?

转载 作者:行者123 更新时间:2023-12-01 05:13:52 25 4
gpt4 key购买 nike

ant 中的符号链接(symbolic link)任务创建单个符号链接(symbolic link)、记录现有符号链接(symbolic link)、重新创建现有符号链接(symbolic link)或删除单个符号链接(symbolic link)。我想创建指向不同目录中给定目录中所有文件的符号链接(symbolic link)。

最佳答案

实现它的最简单方法(在编码方面)是借助 antcontrib 的 For task

<for param="file">
<path>
<fileset dir="${src.dir}" includes="*"/>
</path>
<sequential>

<basename property="@{file}.basename" file="@{file}">
<symlink link="${dest.dir}/${@{file}.basename}" resource="@{file}"/>
</sequential>
</for>

如果你不想依赖ant-contrib,你可以试试下面的方法(注意:我根本没有测试):

  1. 手动创建几个链接${dest.dir}.
  2. 运行在 ${dest.dir} 中。

现在您有了一个模板属性文件,您将使用构建说明重新创建该文件:

<pathconvert pathsep="${line.separator}" property="file.list">
<fileset dir="${src.dir}" includes="*"/>
</pathconvert>
<echo message="${file.list}" file="${file-list.file}" append="false"/>

现在用正则表达式过滤文件

<copy file="${file-list.file}" tofile="${dest-dir}/.link.properties">
<filterchain>
<tokenfilter>
<!-- I leave regex as an exercise to the reader -->
<replaceregex pattern="..." replace="..." flags="..."/>
</tokenfilter>
</filterchain>
</copy>

最后重新创建符号链接(symbolic link)。

<symlink action="recreate">
<fileset dir="${dest.dir}" includes=".link.properties"/>
</symlink>

关于unix - 如何使用文件集中的 apache ant 创建多个新的符号链接(symbolic link)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5587191/

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