【问题标题】:Copy a directory structure and only touch the copied files复制目录结构,只触摸复制的文件
【发布时间】:2021-05-24 18:54:55
【问题描述】:

我想模拟递归地复制目录结构(如cp -rrsync -a),但只触摸复制的文件,即使所有复制的文件为空。

具体用例是针对Snakemake 管道; Snakemake 查找现有文件以确定是否重新运行管道步骤,我想让它相信这些步骤已经运行,同时避免完全下载所有文件。

【问题讨论】:

  • 是否会制作一个虚拟版本的管道,其中规则只是触及其输出,完成这项工作?
  • 我能看到的唯一方法是将touch() 添加到每个规则的output: 部分?那太不切实际了。
  • 不确定这对您的情况是否真的有帮助,但我在snakemake --help 中看到有一个--touch 选项可以与--forceall 结合使用。
  • 我确实想到了,但 --touch 选项“如果文件尚不存在则失败”

标签: linux file directory copy snakemake


【解决方案1】:

这有点笨拙,但您可以使用mkdir -ptouchfindrsync -nv 的输出通过管道传输到一个小bash 循环中:

find /some/dir -type f | while read FILE; do
  mkdir -p $(dirname $FILE)
  touch $FILE
done

【讨论】:

    猜你喜欢
    • 2010-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-04
    相关资源
    最近更新 更多