【问题标题】:Run a qsub command from a parent folder to all directories below with a file *.dat使用文件 *.dat 从父文件夹运行 qsub 命令到下面的所有目录
【发布时间】:2013-06-05 14:48:59
【问题描述】:

我正在使用 Redhat 和 pbs 排队系统将作业提交给有限元分析代码。我通常有一个文件夹,其中包含一个 .dat 文件,这是我要运行的文件,以及一个将提交 .dat 文件的 .pbs 文件。要提交 .dat 文件,我将在包含这两个文件的目录中运行命令“qsub *.pbs”。

我如何从包含 .dat 文件的目录之外提交或只运行“qsub *.pbs”。我通常是 .dat 文件的两个目录。

谢谢

【问题讨论】:

    标签: command-line qsub


    【解决方案1】:

    你可以做一个查找和执行

    find /tmp/foo -name "*.pbs" -exec qsub {} \;

    这是我运行的一个测试

    [spuder@moab tmp]$ mkdir /tmp/torqueFun
    [spuder@moab tmp]$ cd !$
    [spuder@moab torqueFun]$ touch foo.pbs
    [spuder@moab torqueFun]$ touch bar.pbs
    [spuder@moab torqueFun]$ touch foobar.pbs
    
    [spuder@moab torqueFun]$ find . -name "*.pbs" -exec qsub {} \;
    19185.moab.novalocal
    19186.moab.novalocal
    19187.moab.novalocal
    

    【讨论】:

    • 我如何实际运行 pbs 文件在它们各自的目录中,而不是在执行此命令的目录中?
    • 命令find . 将搜索当前目录。您可以像这样搜索任何文件夹:find /some/directory.
    • 我认为你误解了我的问题。如果我说转到父文件夹并执行您编写的命令。然后,就像我想要的那样,它进入每个子目录并执行每个 PBS 文件。但是,pbs 文件在父目录而不是子目录中执行。我所有的子目录都有不同的名称。我不确定如何通过编辑您发送的命令或编辑我的 pbs 文件来解决此问题。注意我有 20 个子目录,每个子目录都有不同的 pbs 文件。
    • 我说的有道理吗?假设我在名为“A”的父目录中,并且我有子目录,“1t”到“20t”当我在父目录“A”并执行命令时,它实际上尝试从每个子目录运行 pbs 文件,但运行它们在没有输入脚本的父目录中,这导致了很多错误文件。
    • 您可以尝试 cd-ing 进入它找到 .pbs 文件的每个目录,然后 cd-ing 退出。或者您可以尝试覆盖 PWD 环境变量。如果这没有帮助,那么您可能应该打开一个新的堆栈溢出问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-03
    • 2011-11-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多