소개
수백 장의 종이가 여기저기 흩어져 있는 지저분한 방을 떠올려 보세요.
- 일부는 숙제입니다 (
math_hw.txt,english_hw.txt). - 일부는 사진입니다 (
pic1.png,pic2.png). - 일부는 쓰레기입니다 (
temp_1,temp_2).
사진을 모두 상자에 넣고 싶을 때 사진을 하나씩 집어 들지는 않습니다. 대신 이렇게 말합니다. "사진처럼 보이는 것은 무엇이든 집어 와."
Linux 에서는 와일드카드(또는 글로빙) 를 사용해 이 작업을 수행합니다. 와일드카드는 카드 덱의 조커처럼 다른 문자를 대신할 수 있습니다.
이 기능을 사용하면 개별 파일 이름이 아니라 패턴으로 작업할 수 있습니다. 실제 시스템에는 일치하는 파일이 수십 개, 수백 개 또는 수천 개 있을 수 있습니다. 패턴을 기반으로 파일을 선택할 수 있다는 점은 셸 작업을 대규모로 확장하기 쉬운 이유 중 하나입니다.
이 실습에서는 다음 두 가지 강력한 기호를 배웁니다.
- 별표 (
*): 모든 것을 나타냅니다 (길이는 제한이 없습니다). - 물음표 (
?): 문자 하나를 나타냅니다.
여러 파일 선택하기 (*)
별표 *는 가장 대표적인 와일드카드입니다. "문자가 몇 개든 일치시킵니다 (문자가 0 개인 경우도 포함)."
지저분한 폴더에 무엇이 있는지 확인해 보겠습니다.
ls
이 명령은 파일을 필터링합니다. 이제 .txt로 끝나는 텍스트 파일만 나열한다고 가정해 보겠습니다.
ls notes.txt readme.txt report.txt처럼 파일 이름을 하나씩 입력하는 대신 *.txt만 입력하면 됩니다.
이 패턴은 ".txt로 끝나는 모든 파일을 찾으라"는 뜻입니다.
ls *.txt
출력:
notes.txt readme.txt report.txt
셸은 *.txt를 확인한 뒤 모든 텍스트 파일과 일치하도록 확장하고, image.png와 다른 파일은 제외했습니다. 목록을 필터링한 것입니다.
이 설명에는 중요한 개념이 포함되어 있습니다. ls 명령이 실행되기 전에 셸이 패턴 확장을 수행합니다. 즉, ls는 원래의 *.txt 패턴이 아니라 완성된 파일 이름 목록을 받는 경우가 많습니다. 이것이 와일드카드가 다양한 명령에서 작동하는 이유입니다.
*를 사용해 파일 이동하기
이번에는 실제로 유용한 작업을 해 보겠습니다. 다음과 같은 데이터 파일이 여러 개 있습니다: data_2025.csv, data_2024.csv, data_old.log.
이 파일들을 정리하려고 합니다. 이름이 data_로 시작하는 모든 파일을 백업 폴더로 이동합니다.
먼저 폴더를 만듭니다.
mkdir backup
이제 와일드카드를 사용해 파일을 한 번에 모두 이동합니다. data_* 패턴은 data_로 시작하는 모든 항목과 일치합니다.
mv data_* backup/
이 명령은 Linux 에 "data_로 시작하면 백업 상자에 넣으라"고 지시합니다.
여기서 와일드카드의 실용적인 장점이 드러납니다. 일치하는 파일마다 명령을 반복하는 대신 파일 이름 규칙을 한 번만 작성하면 셸이 해당 규칙을 확장해 줍니다.
현재 디렉터리에서 파일이 사라졌는지 확인합니다.
ls
파일이 백업 폴더에 제대로 도착했는지도 확인합니다.
ls backup
성공했습니다. 명령 하나로 파일 세 개를 이동했습니다.
문자 하나 선택하기 (?)
별표 *는 모든 것을 선택하는 와일드카드입니다. 하지만 때로는 더 신중하게 선택해야 합니다.
물음표 ? 와일드카드는 문자 하나만 정확히 나타냅니다.
따라서 ?는 *보다 더 정확하게 사용할 수 있습니다. 파일 이름의 형식이 일정하고, 의도보다 긴 이름까지 실수로 일치시키고 싶지 않을 때 유용합니다.
다음과 같은 파일이 있다고 가정합니다: temp_1, temp_2, temp_a.
temp_*는temp_1과temp_very_long_name모두와 일치합니다.temp_?는 밑줄 뒤에 문자가 정확히 하나 있을 때만 일치합니다.
삭제하기 전에 패턴을 테스트해 보겠습니다. 항상 좋은 습관입니다.
ls temp_?
일치하는 파일: temp_1, temp_2, temp_a.
이제 패턴이 올바른지 확인했으므로 파일을 삭제합니다.
rm temp_?
파일이 사라졌는지 확인합니다.
ls
이 방법은 특정한 파일 이름 구조를 가진 파일을 선택할 때 매우 유용합니다.
이 단계의 안전 수칙을 기억해 두세요. rm이나 mv에 패턴을 사용하기 전에 ls처럼 파일을 변경하지 않는 명령으로 패턴을 미리 확인합니다. 패턴 매칭은 강력한 기능이므로 실제 작업을 수행하기 전에 결과를 확인하는 것이 좋습니다.
요약
이제 패턴 매칭의 강력한 기능을 사용할 수 있습니다.
*(별표): "모든 것과 일치"하는 와일드카드입니다. 특정 유형의 모든 파일 (*.png) 이나 일련의 모든 파일 (day_*) 을 선택할 때 유용합니다.?(물음표): "문자 하나"를 나타내는 와일드카드입니다. 정확한 패턴 매칭 (file_?.txt) 에 유용합니다.
이로써 모듈 2 를 마칩니다. 이제 다음 작업을 수행하는 방법을 알고 있습니다.
- 파일 트리 탐색하기 (
pwd,cd,ls). - 파일과 폴더 만들기 (
touch,mkdir). - 파일과 폴더 복사하고 이동하기 (
cp,mv). - 파일과 폴더 삭제하기 (
rm,rmdir). - 파일과 폴더를 여러 개씩 선택하기 (
*,?).
이제 모듈 3 을 시작할 준비가 되었습니다. 모듈 3 에서는 이 파일을 열고 파일 안의 텍스트를 직접 읽고 편집합니다.



