수천 개의 파일을 처리하는 동안 Find 명령이 종료되었습니다.

수천 개의 파일을 처리하는 동안 Find 명령이 종료되었습니다.

osmium수천 개의 OSC 변경 세트 파일에서 PBF를 생성하는 도구를 사용하려고 합니다. Jenkins를 사용하여 이 작업을 수행하기 위해 Bash 스크립트를 작성했습니다.

  1. 모든 OSC 파일을 하나의 마스터 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여전히 종료됩니다.
  • 현재 파일이 포함된 여러 하위 디렉터리가 있는 상위 디렉터리에서 이 명령을 실행하려고 합니다. 각 하위 디렉터리에 대해 수동으로 수행하면 제대로 작동하는 것 같습니다.
  • 특정 경로를 입력으로 받은 경우 해당 경로 내의 모든 하위 디렉터리를 검색할 수 있고 하위 디렉터리가 존재하는 경우 각 하위 디렉터리에서 개별적으로 이 명령을 실행할 수 있는 방법이 있습니까?

관련 정보