如何程序化按文件执行origen save命令以避免文件缺失报错?
解决Origen Save因已删除文件报错的问题
我明白你的痛点——手动删除了不符合使用模型的.pmfl文件后,origen save all因为找不到已删除的文件而报错,现在需要按单个文件维度来执行origen save。下面是具体的解决步骤:
第一步:定位当前存在的目标文件
先把指定路径下还存在的.pmfl文件筛选出来,避免处理已删除的无效文件。可以用find命令快速获取有效文件列表:find ../scan/origen/ft1/vectors/ -name "*.pmfl" -type f这个命令会递归查找目标路径下所有实际存在的.pmfl文件,输出结果就是你需要处理的有效文件清单。
第二步:循环执行单个文件的Save操作
用shell循环遍历上面得到的文件列表,逐个执行origen save命令,这样就只会对存在的文件进行操作,不会触发找不到文件的错误:for file in $(find ../scan/origen/ft1/vectors/ -name "*.pmfl" -type f); do origen save "$file" done如果你的构建环境使用zsh等其他shell,这个逻辑同样适用,只需确保循环语法符合对应shell的规范即可。
问题根源说明
报错的核心原因是origen save all依赖Origen内部维护的文件追踪清单,而你手动删除文件后,清单里仍保留着这些已删除文件的条目,导致执行时触发cp: cannot stat错误。通过单个文件维度的循环执行,我们直接跳过了已被删除的文件,只对当前存在的有效文件进行保存操作,完美避开了这个问题。
内容的提问来源于stack exchange,提问作者rchitect-of-info
相关产品推荐
相关产品推荐

