명령 을 실행 find
하고 명령이 반환하는 파일을 처리하는 동시에 처리된 파일 수를 에코하여 진행 상황에 대한 아이디어를 제공하고 싶습니다.
지금 내 명령은 (예를 들어) 다음과 같습니다.
COUNT=0\; find . -name '*.*' -exec echo "$COUNT: \c" \; -exec echo {} \;
그러나 결과적으로 카운트가 에코되지 않습니다(그리고 이를 늘리는 방법도 모르겠습니다). 나는 그것이 나에게 다음과 같은 것을 주기를 원합니다:
0: ./FileOne.txt
1: ./FileTwo.txt
...
205: ./FileTwoHundredAndFive.txt
답변1
실행된 명령은 find
독립적입니다. 각 명령은 -exec
새로운 명령을 시작합니다. 현재 카운트를 어딘가(파일)에 저장하지 않고 한 명령에서 다음 명령으로 전송할 수 있는 방법이 없으므로 매우 느립니다.
파일을 볼 때마다 인쇄 내용을 찾고 입력 줄 수를 계산하는 프로그램에 출력을 파이프할 수 있습니다.
find … -print -exec 'the stuff you want to do' | nl
버퍼링으로 인해 지연된 후에 카운트가 인쇄됩니다. 바라보다파이프라인에서 버퍼링 끄기버퍼링이 꺼진 경우.
stdbuf -oL -eL find … -print -exec 'the stuff you want to do' | nl