와일드 카드 이상한 행동-왜?


9

locate "*.png".png예상대로으로 끝나는 모든 파일을 반환합니다 .

locate "test.*"아무것도 반환하지 않지만 test내 시스템에 이름이 지정된 파일이 있습니다 .

locate "*test"test예상대로으로 끝나는 모든 파일을 반환합니다 .

locate "test*"아무것도 반환하지 않지만 test내 시스템에서 시작하는 파일이 있습니다 .

와일드 카드가 "끝"으로 만 작동하는 이유는 무엇입니까?


1
일치하는 파일을 만든 후 test*및 b 파일을 다시 빌드 했습니까 test.*?
Ignacio Vazquez-Abrams

@ IgnacioVazquez-Abrams : 예
Vittorio Romeo

답변:


12

locate "test.*" 아무것도 반환하지 않지만 시스템에 test라는 파일이 있습니다.

.정규 표현식에서와 같이 임의의 문자 test.*가 아닌 점으로 취급되므로 일치하지 test않지만 test.foo.

locate "test*"아무것도 반환하지 않지만 test내 시스템에서 시작하는 파일이 있습니다 .

locate는 파일의 전체 경로를 저장 하므로 test로 시작하는 파일을 찾으려면을 사용해야합니다 locate "*/test*".

locate foo포함하여 무엇이든 발견 하면 마지막 점이 혼란 스러울 수 있으므로 foo패턴이로 해석됩니다 *foo*. 패턴에 이미 와일드 카드가 하나 있으면 패턴이 별표로 묶여 있지 않은 것 같습니다.

면책 조항 : 나는 약간의 테스트를했는데 이것들은 나의 결론이며, 맨 페이지를 인용하여 그것을 입증 할 수는 없습니다. 매우 기초적인 것 같습니다.


3
경우man locate : --regex를 지정하지 않으면 PATTERN에 globbing 문자가 포함될 수 있습니다. PATTERN에 globbing 문자가 포함되지 않은 경우 locate는 패턴이 * PATTERN * 인 것처럼 동작합니다.
gniourf_gniourf 2016 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.