본문으로 바로가기

리눅스 mkdir 명령어 사용법 ( -m, -p, -v, -Z)

category 리눅스 (linux)/명령어 2022. 2. 16. 19:25

: 디렉토리를 만들때 사용하는 명령어

 

매뉴얼 페이지

ex> 현 디렉토리 아래 a,b,c,d 의 4개의 디렉토리 생성하기

$ mkdir a b c d
~/Temp/mkdirTest$ ls
a  b  c  d

 

0> 도표

옵션
의미
기타
-m , --mode
퍼미션설정
목차 참조
-p , --parents
필요시 상위디렉토리 생성
목차 참조
-v, --verbose
디렉토리 생성시 메시지 출력
목차 참조
-Z, --context
selinux security context 설정
목차 참조

목차

     

     

     옵션

     -m 옵션 (--mode)

    : 퍼미션 설정

     
    >> d 디렉토리 생성및 퍼미션을 추가합니다.
    $ mkdir -m 755 d
    $ ll
    ~~~~ 중략 ~~~~
    drwxr-xr-x  2 leevisual leevisual 4096 12월  7 13:47 d/
    
    $ mkdir -m a=rw e
    $ ll
    ~~~~ 중략 ~~~~
    drw-rw-rw-  2 leevisual leevisual 4096 12월  7 14:12 e/
    
    >> user 에게 모든권한 , group 은 읽고,쓰기 ,other 는 실행권한만 주기
    $ mkdir -m u+rwx,g=rw,o=x f
    $ ll
    ~~~~ 중략 ~~~~
    drwxrw---x  2 leevisual leevisual 4096 12월  7 14:20 f/
    
    >> g 디렉토리 user 에 rw 권한 지정하기
        지정되는 않은 항목은 rwx 가 모두 지정됩니다.
    $ mkdir -m u=rw g
    ~~~~ 중략 ~~~~
    drw-rwxrwx  2 leevisual leevisual 4096 12월  7 14:23 g/
     
     
     

     -p 옵션 (--parents)

    : 상위디렉토리가 없을경우 자동으로 생성

     
     
    $ tree
    .
    ~~~ 중략 ~~~~
    ├── c
    └── d
    
    // e 디렉토리 아래에 s1 ==> s2 ==> s3 생성하기
    $ mkdir e/s1/s2/s3
    mkdir: cannot create directory ‘e/s1/s2/s3’: No such file or directory
    $ mkdir -p e/s1/s2/s3
    $ tree
    .
    ~~~ 중략 ~~~~
    ├── c
    ├── d
    └── e
        └── s1
            └── s2
                └── s3​
     
     

     

     -v 옵션 (--verbose)

    : 디렉토리 생성시 마다 메시지 출력

     
     
    //  f 디렉토리 아래에 s1 ==> s2 ==> s3 생성하기 (-v 옵션 미사용시 메시지가 출력되지 않습니다.)
    $ mkdir -p -v  f/s1/s2/s3
    mkdir: created directory ‘f’
    mkdir: created directory ‘f/s1’
    mkdir: created directory ‘f/s1/s2’
    mkdir: created directory ‘f/s1/s2/s3’​
     
     

     -Z 옵션

    : selinux 설정 옵션

     
      
    >> selinux 되는 환경에서만 테스트 가능합니다.
       일단 ls -Z를 사용해 selinux context 정보 출력을 확인합니다.
    # ls -Z
    u:object_r:shell_data_file:s0 tmp
    
    >> a 라는 디렉토리 생성후 다시 selinux security context 정보를 읽어보면
    # mkdir a
    msm8909:/data/local # ls -lZ
    total 16
    drwxrwxrwx 2 root  root  u:object_r:system_data_file:s0 4096 1971-05-19 00:26 a
    drwxrwx--x 3 shell shell u:object_r:shell_data_file:s0  4096 1971-02-16 17:21 tmp
    
    >> b 라는 디렉토리를 만들고 tmp 에서 적용한 설정를 적용해 보겠습니다.
    # mkdir -Z=u:object_r:shell_data_file:s0 b
    
    # ls -lZ
    total 24
    drwxrwxrwx 2 root  root  u:object_r:system_data_file:s0 4096 1971-05-19 00:26 a
    drwxrwxrwx 2 root  root  =u:object_r:shell_data_file:s0 4096 1971-05-19 00:27 b
    drwxrwx--x 3 shell shell u:object_r:shell_data_file:s0  4096 1971-02-16 17:21 tmp
    
    >> a 디렉토리는 현재 user 설정인 system_data_file context 가 설정이 되고 
       b 디렉토리는 제가 설정한 shell_data_file 로 설정이 되네요.​
     
     
     

    < 기타>

    특정디렉토리아래 1,2,3 디렉토리 만들기 ({,,,})

    ~/Temp/mkdirTest$ mkdir b/1 b/2 b/3
    ~/Temp/mkdirTest/b$ ls
    1  2  3
    
    >> {} 을 사용해 좀더 쉽게 디렉토리 만들기
    ~/Temp/mkdirTest$ mkdir a/{1,2,3}
    :~/Temp/mkdirTest/a$ ls
    1  2  3​
     
     

    도움이 되셨다면  하트 선사 부탁드려요. 
    그럼 수고하세요.

     

     
     
     

     

    반응형