-I 매개변수 "{}"가 기본적으로 선택되는 이유는 무엇입니까?

-I 매개변수 "{}"가 기본적으로 선택되는 이유는 무엇입니까?

-I 매개변수에 대해 "file"과 같은 변수 이름을 전달할 수 있는 것처럼 보이지만 xargs, {}를 사용하는 예가 엄청나게 많습니다. 이전 버전과의 호환성 때문인가요? 아니면 가변 위치의 가시성에 도움이 됩니까? 많은 사람들이 변수 이름 대신 {}를 사용하는 이유는 무엇인가요?

답변1

아주 아주 오래전에, 일치하는 파일 이름으로 바꿀 문자열 find … -exec …로 사용됩니다 . {}이 문자열은 일반적으로 파일 이름이나 명령줄에 표시되지 않기 때문에 선택된 것 같습니다.

당시에 xargs는 존재하지도 않았습니다. 발명되었을 때도 {}사용되었습니다. 옵션이 추가되었을 때 -i(누가 처음으로 이 작업을 수행했는지는 모르겠습니다. 기간을 고려하면 아마도 Solaris일 것입니다), 이는 다음을 의미했습니다."삽입 모드";교체할 기본 문자열을 유지합니다 {}.

답변2

find -exec나는 이것이 중괄호 규칙을 소개하는 조항과 일치한다고 생각합니다.

관련 정보