Embedded Linux

리눅스 기본 명령 : [ 5 ] 와이드 카드(*, ?)

작성자 임베디드코리아 작성일15-11-23 09:43 조회4,633회 댓글0건
<* 리눅스 와일드카드( wildcard ) *>
  ■ 리눅스 와일드카드( wildcard ), 정확히는 와일드카드 문자 ( wildcard character ) 이다.
  ■ 와일드카드는 컴퓨터에서 특정 명령어로 명령을 내릴 때, 여러 파일을 한꺼번에 지정할 목적으로 사용하는 문자열 기호를 가리킨다
  ■ UNIX에서 부터 사용되어 왔으므로 UNIX 계열(UINX-like)에선 모두 사용할 수 있다.

      *** < 와일드 카드 > ***
        ▪ { }          중괄호       안의 각 문자열과 일치 (딕셔너리)
        ▪ [ ]          대괄호.      안의 문자열 중 하나와 일치
        ▪  -          하이픈      양 옆에 있는 문자에서 문자범위를 설정대괄호와 쓰인다
        ▪  [! ] 또는 [^ ]                      [ ] 의 여집합 (complementary set)
        ▪  *      애스터리스크.          0개 이상의 문자를 대체
        ▪  ?                                      1개의 글자를 대체
        ▪  ~                                      해당 유저의 홈 디렉토리 (/home/<userid>)

        ** 와일드카드는 따옴표( "  " ) 안에 넣으면 안된다 **

        예  ) (test.txt, tes/123.txt 등 일치하는 모든 파일/디렉토리(내부)가 출력)
                $ ls  tes*

        예 )  test.txt, test.txx 등 하나 일치한 파일을 출력
                $ ls test.tx?

        예 )  ls 명령에서 대괄호와 ' ! ' , ' - ' 를 활용
                $ ls  -l
                total 0
                -rw-r--r--. 1 root root 0 Jun 20 21:30  aaa
                -rw-r--r--. 1 root root 0 Jun 20 21:30 CCC
                -rw-r--r--. 1 root root 0 Jun 20 21:32 Other
                -rw-r--r--. 1 root root 0 Jun 20 21:44 shvatio?
                -rw-r--r--. 1 root root 0 Jun 20 21:47 Zvezda*

                $ ls  -l  [!a-C]*
                -rw-r--r--. 1 root root 0 Jun 20 21:32 Other
                -rw-r--r--. 1 root root 0 Jun 20 21:44 shvatio?
                -rw-r--r--. 1 root root 0 Jun 20 21:31 So#Me
                -rw-r--r--. 1 root root 0 Jun 20 21:47 Zvezda*

                $ ls -l [!aZ]*
                -rw-r--r--. 1 root root 0 Jun  20 21:30 CCC
                -rw-r--r--. 1 root root 0 Jun 20 21:32 Other
                -rw-r--r--. 1 root root 0 Jun 20 21:44 shvatio?
                -rw-r--r--. 1 root root 0 Jun 20 21:31 So#Me

              예 )    *
                      $ ls *    // 현재 디렉토리에 있는 모든 파일 list 출력
                      $ ls *.c    // 현재 디렉토리에 있는 .c 파일 list 출력
                      $ ls ma*      // ma으로 시작하는 현재 디렉토리에 있는 모든 파일 출력
                      $ ls *aba*    // aba가 들어있는 현재 디렉토리에 있는 모든 파일 출력

              예 )    ?
                      $ ls m???.c            // main.c 출력
                      $ ls a?                    // a1 a2 a3 출력
                      $ ls ??                    // a1 a2 a3 출력
                      $ ls ?app?.t?t        // happy.txt 출력

              예 )  [ ]
                    $ ls [a]*            // a1 a2 a3 a4 출력
                    $ ls [a][1-4]      // a1 a2 a3 a4 출력
                    $ ls [mh]*        // main.c happy.txt 출력
                                              // *[mh] 할 경우에는 m과 h가 들어가 있는 것을 모두 출력해줌
                    $ ls *[2-4]        // a2 a3 a4