find 내부의 변수 인쇄 및 업데이트

find 내부의 변수 인쇄 및 업데이트

find명령을 실행하고 명령이 반환하는 파일을 처리하는 동시에 처리되는 파일 수를 에코하여 진행 상황을 파악하고 싶습니다 .

지금 내 명령은 (예를 들어) 다음과 같습니다.

COUNT=0\; find . -name '*.*' -exec echo "$COUNT: \c" \; -exec echo {} \;

그러나 결과적으로 에코할 카운트를 얻지 못합니다(그리고 이를 증가시키는 방법을 알 수도 없습니다). 나는 그것이 나에게 다음과 같은 것을 주고 싶습니다:

0: ./FileOne.txt
1: ./FileTwo.txt
...
205: ./FileTwoHundredAndFive.txt

답변1

에 의해 실행되는 명령은 find독립적입니다. 각각은 -exec새로운 명령을 시작합니다. 현재 카운트를 매우 느린 어딘가(파일)에 저장하는 것 외에는 한 명령에서 다음 명령으로 전송할 수 있는 방법이 없습니다.

파일을 볼 때마다 find 인쇄를 수행하고 입력 행 수를 계산하는 프로그램에 출력을 파이프할 수 있습니다.

find … -print -exec 'the stuff you want to do' | nl

버퍼링으로 인해 지연된 후에 개수가 인쇄됩니다. 보다파이프에서 버퍼링 끄기버퍼링을 끄는 중입니다.

stdbuf -oL -eL find … -print -exec 'the stuff you want to do' | nl

관련 정보