중괄호를 사용한 차이점은 무엇을 의미하나요?

중괄호를 사용한 차이점은 무엇을 의미하나요?
for i in $(find template -type f | sed 's/^template//') ; do
    diff -wBNu {,./template}$i

디렉토리의 모든 파일을 반복 template하고 템플릿으로 시작하는 모든 문장을 로 바꾸는 for 루프를 이해할 수 있습니다 ''. 여기서 뭐 하는 거야 diff?

답변1

중괄호는 쉘의 "분기 확장"을 수행합니다. {,./template}$i 구성은 $i 값을 포함하는 단어 쌍을 생성하지만 후자 앞에는 ./template이 옵니다. 명령을 시도

echo foo{,bar}

쉘 프롬프트에서 실제로 작동하는 모습을 확인하세요. 이는 bash 매뉴얼의 "Brace Expansion"에 문서화되어 있습니다.

관련 정보