여기에 문제가 있습니다. 누군가 설명하거나 참고 자료를 제공해 주실 수 있습니까? 한 시간부터 읽으려고 노력했지만 답을 찾을 수 없습니다.
디렉토리 풀에서 process1이 진행되고 있다고 가정해 보겠습니다. process1은 디렉토리를 선택하고 그 안에 .csv 파일을 생성합니다. .csv 파일이 추가되고 있으므로 process1이 이(예: Directory1)에서 계속되는 동안 불완전합니다. 그런 다음 process1은 디렉토리2로 이동하는 식으로 진행됩니다.
이제 process1이 완료된 디렉토리의 csvs로 작업을 수행하고 싶습니다. 이상적으로는 어떤 디렉터리가 완료되었는지 확인하고 해당 디렉터리에서 process2를 실행해야 합니다. 그러나 나의 무한한 지혜로 나는 이렇게 합니다.
디렉토리 찾기* -type f -name '*.csv' -exec process2
내 가정은 find가 먼저 find 호출 지점까지 존재하는 모든 csv를 찾은 다음 find 호출 이후에 생성될 모든 csv를 무시하고 해당 항목에 대해서만 -exec process2를 찾는다는 것입니다.
제가 틀린 것 같습니다(아직 확실하지 않습니다). 누군가 설명해 주실 수 있나요?
감사해요.
답변1
-exec와 함께 작동하는 방식은 find
각 파일이 발견될 때 exec 프로세스가 호출된다는 것입니다. 스냅샷에서 작업하려면 다음과 같이 하는 것이 더 나을 것입니다.
find directories* -type f -name '*.csv' > /tmp/filelist
cat /tmp/filelist | while read file; do
process2 $file # I'm assuming you want to pass the filename somehow...
done;
다시 말하지만, 실제로 어느 항목에 기록되고 있는지 아직 알 수 없으므로 별도로 해결해야 합니다.