2

我得到一个关于 condor 输出文件的问题:如何让 condor 在我的目录中拥有所有输出文件,而不指定文件名?我尝试这样做: transfer_output_files = *.txt

但这只是在我的目录中给我一个“* .txt”......谢谢!

4

2 回答 2

2

HTCondor 会自动将其工作目录中的所有内容传输回来,因此只要您创建文件时,它们是在当前目录中创建的,它们应该出现在提交节点的工作目录中。

如果要移动其他类型的文件,则需要使用 transfer_output_remaps,文档中给出如下:

transfer_output_remaps <`` name newname ; name2 newname2 ... ''>

这指定了从完成的作业下载输出文件时要使用的名称(以及可选的路径)。通常,输出文件会以与执行目录中相同的名称传输回初始工作目录。这使您可以选择使用不同的路径或名称保存它们。如果您指定相对路径,则最终路径将相对于作业的初始工作目录。

name 描述了您的作业生成的输出文件名,newname 描述了它应该下载到的文件名。可以通过用分号分隔每个重新映射来指定多个重新映射。如果您希望重新映射包含等号或分号的文件名,可以使用反斜杠转义这些特殊字符。您不能指定要重新映射的目录。*

所以这里没有办法通过外观来指定通配符,但是通过外观你需要让 condor 传输输出本身。

于 2016-05-16T14:25:22.283 回答
1

解决此问题的一种可能性是使用存档作为输出,例如AllTextFiles.zip. 在您的执行程序中添加一行,该行获取所有txt文件并将它们添加到存档中。

直接从命令行它将是这样的:

 7z a  AllTextFiles.zip *.txt

它可以用 7z 完成,这应该不会太麻烦。我认为您可以使用 powershell 创建一个 zip,但这是另一个问题。在 Linux 中它会更容易。有些语言内置了归档功能,所以这也是一种可能。

.sub文件中,您需要该行

transfer_output_files = AllTextFiles.zip
于 2016-11-04T12:43:41.397 回答