openfoam如何将结果文件写到其他文件夹?
-
让AI帮忙写了个脚本,供大家参考。原理是提前在当前的算例文件夹下创建好链接,链接到另一个硬盘已经创建好的时间文件夹。实测在/home/disk1/caseA目录下运行OpenFOAM求解器,可以将数据文件存到/home/disk2/caseB中。注意这个脚本得在/home/disk1/caseA目录下运行,不然
ln
命令总会有一些bug,有时候是没办法正确创建链接,有时候是会出现链接的嵌套。#!/bin/bash # 配置路径 src="/home/disk1/caseA" dst="/home/disk2/caseB" # 创建目标目录 mkdir -p "$dst" # 处理单个 processor 的函数 process_proc() { local proc="$1" local dst="$2" local procname=$(basename "$proc") # 创建 processor 目录 mkdir -p "$dst/$procname" # 生成时间序列并创建时间文件夹(自动剪除尾随零) seq 8.0001 0.0001 8.5 | while read t; do formatted_t=$(printf "%g" "$t") mkdir -p "$dst/$procname/$formatted_t" # 创建符号链接,指向目标目录中的时间文件夹 ln -sfn "$dst/$procname/$formatted_t" "$procname/$formatted_t" done } # 导出函数以便并行使用 export -f process_proc # 收集所有 processor 目录 proc_dirs=("$src"/processor*) # 并行处理(使用所有CPU核心) parallel --jobs 0 --progress --bar process_proc {} "$dst" ::: "${proc_dirs[@]}" echo "processor 文件夹和时间文件夹创建完成。"