何千ものファイルの処理中に Find コマンドが終了しました。

何千ものファイルの処理中に Find コマンドが終了しました。

osmium何千ものOSCチェンジセットファイルからPBFを生成するツールを使用しようとしています。 Jenkinsを使用してこれを行うためにBashスクリプトを作成しました。

  1. すべてのOSCファイルを1つのマスターOSCファイルにマージします。
  2. このOSCはPBFに適用されます。

しかし、一度に多数のOSCファイルをマスターにマージしようとすると問題が発生します。私は次のコマンドを使用します

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

ただし、このコマンドは、12,000を超えるファイルを含む大規模ディレクトリを処理しようとすると、オペレーティングシステムによってシャットダウンされます。

すべてのファイルを再帰的に検索するディレクトリとサブディレクトリが多く、*.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まだ終了します。
  • 現在、ファイルを含む複数のサブディレクトリがある親ディレクトリでこのコマンドを実行しようとしています。各サブディレクトリに対して手動で実行すると正常に動作するようです。
  • 特定のパスを入力として受け取った場合は、そのパス内のすべてのサブディレクトリを検索でき、サブディレクトリが存在する場合は各サブディレクトリで個別にこのコマンドを実行する方法はありますか?

関連情報