尝试复制输出文件时无限循环路径

时间:2014-07-23 10:18:22

标签: linux mpi cp

我正在尝试在Linux集群上运行模拟。在我的主目录中的头节点上我有

/home/checkouts (contains the executable of the model)

/home/models/run (contains the input files for the model)

在模拟过程中,我将输出数据保存在本地节点上,最后我想将输出文件复制到/ home / models / output / run。我得到的是像这样的无限循环的输出/运行/运行文件夹

/home/models/output/run/run/output/run/run/output/run/run/output/run/run ...

有人知道我犯了哪个错误吗?我使用以下sh脚本来运行模型:

rundir=$PWD

outputdir=/home/models/output

run=$(basename $rundir)         # run

cp -r $rundir /var/tmp/$run
pushd /var/tmp/$run

mpirun -np $NO_OF_CORES -machinefile nodes ~/checkouts/x_model-v1.21.$

popd
cp -r /var/tmp/$run $outputdir

1 个答案:

答案 0 :(得分:0)

复制符号链接时添加-P选项,或者更好地使用-d。:

  

-P, - no-dereference永远不会遵循SOURCE中的符号链接

     

-d与--no-dereference --preserve = links

相同      

- preserve [= ATTR_LIST]保留指定的属性(默认值:mode,ownership,timestamps),如果可能的话还有其他属性:context,links,xattr,all

这有助于防止在遇到循环链接时进入infinte循环。我还建议正确引用你的变量,以防止单词分裂和意外的pathanme扩展。

cp -dr "$rundir" "/var/tmp/$run"

您还可以考虑-a而不是-dr