我正在寻找一个bash脚本(或一行代码)来完成以下任务:
非常感谢任何帮助,谢谢。
答案 0 :(得分:0)
上面的文件列表非常长,效率不高,但是(1)它有一个短列表(低常量启动成本),以及(2)它&#39 ;非常明确地说明它是如何运作的(易于阅读和理解)。
shopt -s nullglob
candidates=( slurm-* )
(( ${#candidates[@]} < 2 )) && exit 0 ## nothing to do if <2 files exist
latest=${candidates[0]} ## populate latest variable w/ first
for candidate in "${candidates[@]}"; do ## loop through the whole set
if [[ $candidate -nt $latest ]]; then ## and if one is newer, call it "latest"
latest=$candidate
fi
done
for candidate in "${candidates[@]}"; do ## iterate through the whole set
if [[ $candidate != "$latest" ]]; then ## and for everything but the latest file
rm -f -- "$candidate" ## run a deletion
fi
done
答案 1 :(得分:0)
回答XY问题,如果您的目的是在提交时保持干净的工作目录,您可能会发现将#SBATCH -o output.txt
实际添加到提交文件以每次覆盖Slurm输出文件的更好方法连续几次完成相同的工作,直到它正常运行。