尝试处理数千个文件时“查找”命令被终止

尝试处理数千个文件时“查找”命令被终止

osmium我正在尝试使用工具从数千个 OSC 变更集文件中创建 PBF 。我已经编写了一个 Bash 脚本来使用 Jenkins 执行此任务。

  1. 我正在将所有 OSC 文件合并到一个主 OSC 文件中
  2. 然后将该 OSC 应用于 PBF。

但是当我尝试将大量 OSC 文件一次合并到 master 中时,我遇到了问题。我使用以下命令

osmium merge-changes -v -o $destination/all-"$execution_tag".osc.gz $(find $_osc -name '*.osc') --overwrite

但是当操作系统尝试处理包含超过 12k 文件的大目录时,此命令将被操作系统终止。

我有很多目录和子目录,我试图在其中递归地查找所有*.osc文件,有时文件太多,导致出现以下错误:

[ 0:01] Opening output file...
[ 0:01] Reading change file contents...
***/tmp/jenkins91826773077502863.sh: line 36: 329085 Killed                  osmium merge-changes -v -o $_osc_processor/all-"$execution_tag".osc.gz $(find $_osc -name '*.osc') --overwrite***
applying master osc change file to pbf ::

解决这个问题的最佳方法是什么?有没有其他方法可以递归查找目录和子目录中的所有文件?

  • 我尝试find用全局搜索(/*/*.osc)替换它,但它仍然被杀死。
  • 目前我正在尝试从具有多个带有文件的子目录的父目录运行此命令。如果我手动执行每个子目录,它似乎工作正常
  • 有没有办法,如果我得到特定路径作为输入,我可以搜索其中的所有子目录,如果子目录存在,那么我在每个子目录上单独运行此命令?

相关内容