ls 유틸리티를 사용할 때 (?)는 무엇을 의미합니까?

ls 유틸리티를 사용할 때 (?)는 무엇을 의미합니까?

나는 사용하고있다엘에스유틸리티와 내 명령은 다음과 같습니다.

$ ls x?[a-c]*

그러한 명령의 결과는 무엇입니까? 지금까지 나는 다음 항목이 나열된다는 것을 이해했습니다(그리고 이것이 정확하기를 바랍니다).

  • x로 시작하다
  • 세 번째 문자는 {a,b,c}입니다.
  • 세 번째 문자(상관 없음) 이후의 모든 내용이 포함됩니다.

내 질문응, 그게 뭐야??(물음표)는 무엇을 의미하나요?

미리 감사드립니다.

답변1

ls기능 이 아니라 bash기능이며 "패턴 일치" 섹션에 설명되어 있습니다.큰 타격(1):

특수 패턴 문자의 의미는 다음과 같습니다.

*

      빈 문자열을 포함하여 모든 문자열과 일치합니다. 언제. . . 언제globstar쉘 옵션이 활성화되어 있으며 *경로 이름 확장 컨텍스트에서 사용되며 두 개의 인접한*단일 패턴으로 사용되면 모든 파일과 0개 이상의 디렉터리 및 하위 디렉터리와 일치합니다. 다음에/, 인접한 두 개 *s는 디렉터리 및 하위 디렉터리에만 일치합니다.
?
      단일 문자와 일치합니다.
[...]
      포함된 모든 문자와 일치합니다. 하이픈으로 구분된 문자 쌍으로 표시됩니다.범위 표현; 현재 로케일의 조합 순서와 문자 세트를 사용하여 이 두 문자 사이의 모든 문자와 일치합니다. 다음의 첫 번째 문자인 경우 [! 또는^그런 다음 포함되지 않은 모든 문자가 일치됩니다. 범위 표현식의 문자 정렬 순서는 현재 로케일 및LC_COLLATE또는LC_ALL설정된 경우 쉘 변수. 범위 표현식의 전통적인 해석을 얻으려면[a-d]동등하다[abcd], 설정값 LC_ALL 쉘 변수는 C또는 활성화 globasciiranges주택 옵션. ㅏ-세트의 첫 번째 또는 마지막 문자로 만들어 일치시킬 수 있습니다. ㅏ]세트의 첫 번째 문자로 만들어 일치시킬 수 있습니다.

귀하의 이해도 완전히 정확하지는 않습니다. ?이는 단일 문자를 의미하므로 표현식이 x?[a-c]*일치할 것이며 xQcFoo.bar, xmabc요점은 이것이 세 번째 문자 x1a가 아니라 두 번째 문자일 수도 있다는 것입니다. 명령의 출력은 패턴과 일치하는 파일 목록이 됩니다. 또는 그러한 파일이 없으면 쉘은 이를 어떤 것으로도 바꾸지 않으므로 리터럴 이름을 나열하려고 시도합니다.xabc{a,b,c}ls x?[a-c]*x?[a-c]*x?[a-c]*lsx?[a-c]*

관련 정보