파일 이름 확장자의 "."을 어떻게 이해합니까?

파일 이름 확장자의 "."을 어떻게 이해합니까?

Bash 매뉴얼에서 파일 이름 확장자의 경우:

파일 이름 확장에 패턴이 사용되는 경우 .쉘 옵션 dotglob이 설정되지 않은 한 파일 이름 시작 부분이나 슬래시 바로 뒤의 문자가 명시적으로 일치해야 합니다.

파일 이름을 일치시킬 때 슬래시 문자는 항상 명시적으로 일치해야 합니다.

다른 경우에는 .캐릭터가 특별한 대우를 받지 않습니다.

인용문의 상황을 설명하기 위해 몇 가지 예를 들어주실 수 있나요?

.파일 이름 확장자의 사용 과 하드 링크와 관련 없는 사용을 어떻게 구별합니까 .?

답변1

아니요용법.파일 이름 확장자에 . 파일 이름 확장자를 사용하는 경우 .또는 와 같은 것을 사용하여 명시적으로 요청하지 않는 한 또는 로 시작하는 파일 이름은 일반적으로 제외됩니다 . 파일 이름의 유효한 문자가 아니므로 일치하지 않습니다..*.?/*/

$ touch foo .foo; echo *; echo .*; echo ./*; echo; ./.*
foo
.foo
./foo
./.foo

*및 -가 어떻게 제외되는지 참고하세요 . 하지만 첫 번째 명령은 사용되지 않고 세 번째 명령은 사용되므로 와일드카드는 a로 구분됩니다. 로 시작하는 파일 이름을 일치시키려면 선행 - , . 그러나 이 경우의 역할은 의 역할과 다르지 않습니다../*.fooecho.echo././...*./.*.aa*

이 예외는 를 사용하여 비활성화할 수 있습니다 shopt -s dotglob.

파일 이름 확장자에는 특별한 사용법이 없으므로 .구별할 것이 없습니다. 파일 이름 확장자의 유일한 특수 문자는 *, ?, 입니다 [...].

관련 정보