【问题标题】:Can Ant remove _identical_ files from two directories?Ant 可以从两个目录中删除 _identical_ 文件吗?
【发布时间】:2019-04-30 01:52:23
【问题描述】:

我知道 Ant 可以从两个目录中删除具有匹配文件名的文件。 [1]。

但是,我希望测试文件是否相同 - 如果它们是字节相同的副本(或者 也许 相同的大小就足够了),我只想删除它们。

创建我自己的 Ant 任务是这样做的唯一方法吗?

背景:我定期分发压缩包的数据文件。为了节省带宽,我希望切换到仅分发数据文件的增量。为此,我需要知道哪些文件自上一版本以来没有更改 - 仅识别新文件是不够的。

[1]。 Delete duplicate files using ant?

【问题讨论】:

    标签: file ant


    【解决方案1】:

    Ant 有一个different 选择器,可以应用于资源集合。它可以通过修改时间、内容或两者来选择文件。

    这是一个演示其工作原理的示例目标。

    <target name="copy-different">
        <delete dir="src_dir" />
        <delete dir="dest_dir" />
    
        <mkdir dir="src_dir" />
        <mkdir dir="dest_dir" />
    
        <touch file="src_dir/file1" />
        <touch file="src_dir/file2" />
    
        <echo file="src_dir/file1" message="identical" />
        <echo file="src_dir/file2" message="different" />
    
        <touch file="dest_dir/file1" />
        <touch file="dest_dir/file2" />
    
        <echo file="dest_dir/file1" message="identical" />
        <echo file="dest_dir/file2" message="identical" />
    
        <copy todir="different" overwrite="true">
            <fileset dir="src_dir">
                <different targetdir="dest_dir" ignoreFileTimes="true" />
            </fileset>
        </copy>
    </target>
    

    只有file2 会被复制到dest_dir

    【讨论】:

      猜你喜欢
      • 2016-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-11
      相关资源
      最近更新 更多