Skip to main content

5. 와일드카드(Wildcards)

와일드카드는 이전에 유닉스를 사용해 본 적이 있다면 전혀 새로운 것이 아닙니다.
하지만 셸 스크립트에서 와일드카드가 어떻게 유용한지는 분명하지 않습니다. 이 섹션은 셸 스크립트에서 다양한 구문을 사용할 때 어떤 효과가 나타날지 예측하는 등, 오래된 회색 세포가 어떻게 보이는지 생각해보도록 하기 위한 것입니다. 이것은 나중에 특히 루프 섹션에서 사용될 것입니다.
먼저 /tmp/a의 모든 파일을 /tmp/b로 어떻게 복사할지 생각해 보세요. 모든 .txt 파일? 모든 .html 파일?
여러분이 생각해내셨기를 바랍니다:

$ cp /tmp/a/* /tmp/b/
$ cp /tmp/a/*.txt /tmp/b/ 
$ cp /tmp/a/*.html /tmp/b/

이제 ls /tmp/a/를 사용하지 않고 /tmp/a/에 있는 파일을 나열하려면 어떻게 해야 할까요?
echo /tmp/a/*는 어떨까요? 이것과 ls 출력의 두 가지 주요 차이점은 무엇일까요? 이것이 어떻게 유용할까요? 아니면 방해가 될까요?
모든 .txt 파일의 이름을 어떻게 .bak으로 바꿀 수 있을까요? 다음 사항에 유의하세요.

$ mv *.txt *.bak

를 사용하면 원하는 효과를 얻을 수 없으므로, 셸에서 어떻게 확장되어 mv로 전달되는지 생각해 보세요. 도움이 된다면 mv 대신 echo를 사용하여 시도해 보세요.
아직 다루지 않은 몇 가지 개념을 사용하기 때문에 나중에 더 자세히 살펴보겠습니다.