exec{} +의 의미를 알고 싶습니다. > 명령, {} +{} \;의 차이점은 무엇입니까? 정확히 말하면이 둘의 차이점은 무엇입니까?

find . -type f -exec chmod 775 {} + find . -type f -exec chmod 775 {} \; 

댓글

  • 설명 man find(1)에 자세히 설명되어있어 누구나 쉽게 찾을 수 있습니다. ' 게으르지 마십시오.
  • 미로슬라브에게 감사합니다. man exec에서 검색했습니다!
  • 아, 전에는 {} + 사용법을 본 적이 없습니다. 나는 일반적으로 xargs를 사용합니다 (그리고 종종 find ... -print0 | xargs -0 ...)

Answer

; (세미콜론) 또는 + (더하기 기호)를 사용해야

/ execdir.

; (세미콜론) 또는 + (더하기 기호)는 인수가 find “의 -exec / -execdir로 전달되는 방법입니다. 매개 변수. 예 :

  • ;를 사용하면 여러 명령이 실행됩니다. (각 인수에 대해 별도),

    예 :

    $ find /etc/rc* -exec echo Arg: {} ";" Arg: /etc/rc.common Arg: /etc/rc.common~previous Arg: /etc/rc.local Arg: /etc/rc.netboot 

    find에 대한 모든 다음 인수는 명령에 대한 인수로 간주됩니다.

    문자열 {}는 현재 파일 이름으로 대체됩니다. e 처리 중입니다.

  • 는 가능한 최소한의 명령을 실행합니다 (인수가 함께 결합되므로). xargs 명령이 작동하는 방식과 매우 유사하므로 한 줄당 최대 인수 제한을 초과하지 않도록 명령 당 가능한 많은 인수를 사용합니다.

    예 :

    $ find /etc/rc* -exec echo Arg: {} "+" Arg: /etc/rc.common /etc/rc.common~previous /etc/rc.local /etc/rc.netboot 

    명령 줄은 선택한 각 파일 이름을 끝에 추가하여 작성됩니다.

    명령 내에서 {}의 한 인스턴스 만 허용됩니다.

참조 :

Comments

  • 차이점이 있습니다 . 주요한 차이점이 있습니다. user1116056 ' s 답변을 참조하세요.

li>

답변

명령어 find는 다음 세 파일 아래에 있습니다.

fileA fileB fileC 

-exec를 더하기 (+) 기호,

find . -type f -exec chmod 775 {} + 

다음과 같습니다.

chmod 775 fileA fileB fileC 

명령 줄은 xargs가 명령 줄을 만드는 것과 동일한 방식으로 끝에 일치하는 각 파일 이름을 끝에 추가하여 빌드됩니다. 명령의 총 호출 수 (이 경우 chmod)는 일치하는 파일 수보다 훨씬 적습니다.

세미콜론 (;)과 함께 -exec를 사용하는 경우

find . -type f -exec chmod 775 {} \; 

예 :

chmod 775 fileA chmod 775 fileB chmod 775 fileC 

답변

man find에 따라 :

-exec 명령 {} + -exec 조치의 변형은 선택된 파일에서 지정된 명령을 실행하지만 명령 행은 마지막에 선택된 각 파일 이름을 추가하여 작성됩니다. 명령의 총 호출 수는 일치하는 파일 수보다 훨씬 적습니다. 명령 줄은 xargs가 명령 줄을 빌드하는 것과 거의 같은 방식으로 빌드됩니다. 명령 내에서‘{}’의 인스턴스는 하나만 허용됩니다. 이 명령은 시작 디렉토리에서 실행됩니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다