>

ls [:lower:]* 를 실행할 때 시스템 중 하나에서 소문자로 시작하는 모든 파일이 표시됩니다.

다른 하나에서는 오류가 발생합니다 :

ls: cannot access [:lower:]*: No such file or directory

작업 디렉토리에 소문자로 시작하는 파일이 있습니다.

ls [[:lower:]]* 를 실행  대신 두 시스템에서 모두 작동합니다. 왜 ls [:lower:]* 를 이해하고 싶습니다  두 번째 시스템에서는 작동하지 않으며 문자 클래스를 사용하는 올바른 방법은 무엇입니까?

Bash를 실행하고 있지만 다른 쉘에도 적용 할 수있는 답변을 원합니다.

  • 답변 # 1

    첫 번째 예는 생각했던대로하지 않았습니다. 대신 다음 문자 중 하나로 시작된 모든 파일 이름을 나열했습니다.

    :

    e

    l

    o

    r

    w

    ( lower 의 편지들) 다시 정렬). 문자 클래스를 사용하려면 이미 대괄호 안에 있어야하며 [:lower:] 를 사용하십시오 두 번째 예에서와 같이

  • 이전 bash - 파일 이름에 경로 추가
  • 다음 데비안에서 실시간 커널 실행