【发布时间】:2018-02-02 13:27:40
【问题描述】:
我在 HPC 上使用 Centos 来运行我的代码。我通常有一个文件夹,其中包含一个 run_calc 文件,这是我想要运行的:
qsub run_calc
现在我想编写一个脚本“submit_all.sh”,它提交当前目录中所有子文件夹中的所有 run_calc 文件,而不是来自我运行 submit_all.sh 脚本的父文件夹。
我在Solution 和Solution2 发现了类似的问题 这似乎是这个问题的部分答案。在找到解决方案之前,我对提交脚本没有信心,这就是我问的原因:
在第二个链接中我找到了这个解决方案:
for i in {1..1000}; do
cd "$i"
qsub submit.sh
cd ..
done
“i”是名称为 1-100 的文件夹列表。是否可以使用 find 创建所有子目录的列表并将其路径到 for 循环?我将如何处理子子目录?我是否可以更改 cd .. 语句,以便在这种情况下我总是直接返回父文件夹?
我喜欢这个解决方案:Solution
#!/bin/sh
for i in `find /var/www -type d -maxdepth 1 -mindepth 1`; do
cd $i
# do something here
done
但我不明白这是怎么回事?是否可以将上述脚本更改为只潜入包含 run_calc 文件并包含子子目录的文件夹?
提前谢谢你
【问题讨论】:
-
在
for loop中谨慎使用find:unix.stackexchange.com/questions/321697/…