글롭을 사용하여 히든파일 다루기

김강산·2023년 5월 12일
0

bash에서 어떤 디렉토리 밑의 모든 파일을 복사(혹은 이동/삭제)하기 위해 와일드카드를(*)를 사용해본적이 있읍니까? 아주 편리한 기능이기는하지만, 숨김파일에는 적용되지 않는다는 특성이 있읍니다. 도대체 왜 그런지, 어떻게 해결하는지 알아봅시다.

1. 글롭(glob)

bash에서 파일 이름에 대한 패턴매칭에 사용되는 특수문자를 글롭(혹은 와일드카드)라고 합니다. bash에는 다음과 같은 글롭이 존재합니다. 정규표현식과는 다름에 주의합시다.

글롭의미
*임의의 길이의 문자열
?임의의 한 문자
[]대괄호 안의 문자 중 하나

2. 히든파일

리눅스에서 .(점)으로 시작하는 이름을 갖는 파일은 히든파일로 취급됩니다. 이들은 특수한 옵션을 붙이지 않는한, ls 커맨드에 표시되지 않읍니다. 또한, 글롭을 이용한 패턴매칭에 걸리지 않는다는 특성도 갖읍니다.

3. dotglob

히든파일을 패턴매칭의 대상으로 볼지 말지는 "dotglob"이라는 쉘 옵션에 의해 결정됩니다. 기본적으로 bash는 dotglob이 비활성화(unset)되어 있기 때문에 히든파일이 패턴매칭에 걸리지 않았던 것입니다. 다음 커맨드를 이용하여 dotglob 옵션을 활성화(set)시켜봅시다.

$ shopt -s dotglob

이제 히든파일에도 패턴매칭이 적용됩니다.

옵션을 다시 비활성화(unset)시키고 싶을 때에는 쉘을 재기동시키거나, 다음 커맨드를 입력하면 됩니다.

$ shopt -u dotglob

참고자료

http://mywiki.wooledge.org/glob

profile
주로 리눅스 관련된 글을 포스팅합니다.

0개의 댓글