Shell glob이 기본적으로 도트 파일을 생략하는 이유는 무엇입니까? [복사]

Shell glob이 기본적으로 도트 파일을 생략하는 이유는 무엇입니까? [복사]

1)

echo *

[az, AZ]가 포함된 파일 이름만 표시되고, .로 시작하는 파일은 표시되지 않습니다.

예를 들어 .bashrc쉘 글로브로 덮지 않고*

2)

echo .*예상 출력을 제공합니다.


첫 번째 경우, 쉘 glob에 점으로 구분된 파일 이름이 포함되지 않는 이유는 무엇입니까?

답변1

기본적으로 이는 와일드카드가 작동하는 방식입니다(일반적으로 셸에서만이 아니라). ~에 따르면glob(7)맨페이지:

경로명

[...]

파일 이름이 "."로 시작하는 경우 이 문자는 명시적으로 일치해야 합니다. (따라서 어떤 파일도 rm *삭제되지 .profile않으며 어떤 파일도 보관되지 않습니다. 더 좋습니다.)tar c *tar c .

당신은 또한 볼 수 있습니다POSIX 관련 부분.

셸 설정을 사용하여 이를 변경하거나 일부 셸에 와일드카드 수정자를 추가하여 동작을 일시적으로 변경할 수 있습니다.*가 도트 파일과 일치하는지 여부를 제어하기 위한 bash의 globbing 설정은 무엇입니까?자세한 내용은.

관련 정보