find 명령의 "+"는 무엇을 합니까?

find 명령의 "+"는 무엇을 합니까?

.+find

그래서 포스팅은-

find . -exec touch -t 201007162310.00 {} +

이것의 목적을 이해하도록 도와주세요.

답변1

에서 man find:

-exec command {} +

-exec작업의 변형은 선택한 파일에 대해 지정된 명령을 실행하지만 명령줄은 선택한 각 파일 이름을 끝에 추가하여 구성됩니다. 명령의 총 호출 수는 일치하는 파일 수보다 훨씬 적습니다. 명령줄은 xargs가 명령줄을 작성하는 것과 거의 동일한 방식으로 작성됩니다. {}이 인스턴스는 명령에 하나만 허용됩니다. 이 명령은 시작 디렉터리에서 실행됩니다.

예를 들어 find -exec touch -t 201007162310.00 {} +, find없이 명령을 실행 하면 -exec파일 1.txt2.txt3.txt실행됩니다.

touch -t 201007162310.00 1.txt
touch -t 201007162310.00 2.txt
touch -t 201007162310.00 3.txt

-exec ... {} \;, 및

touch -t 201007162310.00 1.txt 2.txt 3.txt

그리고 -exec ... {} +.

후자 버전은 필요한 새 프로세스 수가 훨씬 적기 때문에 더 빠르지만 이식성이 떨어집니다(일부 find구현에서는 지원하지 않음). 물론, 시도 중인 명령이 -exec여러 파일을 인수로 수신하는 것을 지원하지 않으면 작동하지 않습니다.

관련 정보