중괄호가 포함된 "찾기" 명령이 무엇을 의미하는지 알아내도록 도와줄 수 있는 사람이 있나요? [복사]

중괄호가 포함된 "찾기" 명령이 무엇을 의미하는지 알아내도록 도와줄 수 있는 사람이 있나요? [복사]

오래된 메모를 찾았는데 누군가가 다음 명령을 실행하여 일부 파일 권한을 설정하라고 제안했습니다.

find /perl/lib/ -type f -exec chmod o+r \{\} \;

\{\}그 진술 부분이 무엇을 하는지 아시나요 ? 그게 필요 할까? 일부 테스트 파일에서 몇 번 실행을 테스트했는데 백슬래시를 제거하는 것과 동일한 작업을 수행하는 것 같았습니다.

find /u01/app/oracle/product/12102/perl/lib/ -type f -exec chmod o+r {} \;

당신이 제공할 수 있는 어떤 도움이라도 대단히 감사하겠습니다.

답변1

백슬래시는 이스케이프 문자입니다(셸에 다음 문자를 문자 그대로 해석하도록 지시). 당신이 발견했듯이 그것은 불필요합니다. 쉘은 동일한 방식으로 두 명령을 모두 확장합니다.

중괄호는 예약어이거나 단지 안전을 위한 것이므로 필요하다고 생각할 수도 있습니다. 그러나 중괄호 안에 유효한 패턴이 없으면 중괄호 확장이 발생하지 않으며, 중괄호 사이에 공백이 있는 명령 목록이 없으면 명령 그룹화가 시도되지 않습니다.

find/ 명령의 컨텍스트에서 중괄호 자체는 exec반환된 각 파일 이름으로 대체됩니다.

관련 정보