답변1
에서 man find
:
-exec command {} +
이
-exec
작업의 변형은 선택한 파일에 대해 지정된 명령을 실행하지만 명령줄은 선택한 각 파일 이름을 끝에 추가하여 구성됩니다. 명령의 총 호출 수는 일치하는 파일 수보다 훨씬 적습니다. 명령줄은 xargs가 명령줄을 작성하는 것과 거의 동일한 방식으로 작성됩니다.{}
이 인스턴스는 명령에 하나만 허용됩니다. 이 명령은 시작 디렉터리에서 실행됩니다.
예를 들어 find -exec touch -t 201007162310.00 {} +
, find
없이 명령을 실행 하면 -exec
파일 1.txt
및 2.txt
가 3.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
여러 파일을 인수로 수신하는 것을 지원하지 않으면 작동하지 않습니다.