본문으로 바로가기

: tree 명령은 디렉토리 안의 내용을 나무형식으로 리스트시 사용합니다.

Manual page

예제 1 > tree

>> du_test 디렉토리에 2개의 파일( du_1.txt , du_2.txt) 과

1개의 subdrictory (du_dir) 가 있습니다.

du_dir 안에 1개의 파일(du_sub1.txt) 이 있습니다.

예제 2>

다음의 tree 내용중 sub1 과 sub3의 내용만 출력하기

$ tree

$ tree sub1 sub3

--> 심볼릭 링크는 -> 로 보여줍니다.

 

 

목차

     

    0> 도표

    옵션
    의미
    기타
    -d
    디렉토리만 리스트
    1-1번 항목 참조
    -a
    모든파일 리스트
    1-2번 항목 참조
    -f
    표시되는 파일의 전체경로 표시
    1-3번 항목 참조
    -L
    디렉토리 depth 설정
    1-4번 항목 참조
    -P
     
    1-5번 항목 참조
    -I
     
    1-6번 항목 참조
    --prune
    텅빈 디렉토리 리스트 안함.
    1-7번 항목 참조
    -p
    파일의 타입및 퍼미션 출력
    1-8번 항목 참조
    -u
    사용자(username) 출력
    1-9번 항목 참조
    -h
    파일의 사이즈 출력 (human readable)
    1-10번 항목 참조
    -s
    파일의 사이즈 출력
    1-11번 항목 참조
    --du
    디렉토리에 대한 실제 크기 출력
    1-12번 항목 참조
    -o
    출력을 파일로 전송
    1-13번 항목 참조

     

    1> 옵션

    1-1> -d 옵션

    : 디렉토리 리스트 출력

     

    $ tree -d .
    .
    ├── cat_test
    ├── cp_test
    │   ├── sub1
    │   ├── sub2
    │   ├── sub3
    │   └── sub4
    ├── du_test
    │   └── du_dir
    ├── fileTest
    │   └── fileDir
    ├── gitTest
    │   ├── old
    │   └── old2
    ├── gitTest_stash
    ├── grepTest
    ├── inode_test
    └── sortTest

     

     

    1-2> -a 옵션

    : 숨김파일 포함 모든 파일 표시

    리눅스 에서 숨김 파일에 대한 별도로 없고 '.' 으로 시작하면 기본적으로 보이지 않습니다.)

    1-3> -f 옵션

    : 전체경로 포함해서 출력

    1-4> -L 옵션

    : 디렉토리 깊이 설정

     

    level 값을 변경해 출력해 봤습니다.

    tree 명령 depth 3 , 2 일때의 결과
     
    $tree
    .
    ├── sub_tree1
    │   ├── ssub_tree1
    │   │   ├── sssub_tree1
    │   │   └── sssub_tree2
    │   ├── ssub_tree2
    │   └── tree3.txt
    ├── sub_tree2
    │   └── tree4.txt
    ├── tree1.txt
    └── tree2.txt
    
    6 directories, 4 files
    
    $tree -L 1
    .
    ├── sub_tree1
    ├── sub_tree2
    ├── tree1.txt
    └── tree2.txt
    
    2 directories, 2 files
    
    $tree -L 2
    .
    ├── sub_tree1
    │   ├── ssub_tree1
    │   ├── ssub_tree2
    │   └── tree3.txt
    ├── sub_tree2
    │   └── tree4.txt
    ├── tree1.txt
    └── tree2.txt
    
    4 directories, 4 files
    
    t$tree -L 3
    .
    ├── sub_tree1
    │   ├── ssub_tree1
    │   │   ├── sssub_tree1
    │   │   └── sssub_tree2
    │   ├── ssub_tree2
    │   └── tree3.txt
    ├── sub_tree2
    │   └── tree4.txt
    ├── tree1.txt
    └── tree2.txt
    
    6 directories, 4 files

     

    1-5> -P 옵션

    : 패턴이 매칭되는 파일들을 리스트합니다. (디렉토리 (X))

     
    $tree -P "tree*"
    .
    ├── sub_tree1
    │   ├── ssub_tree1
    │   │   ├── sssub_tree1
    │   │   └── sssub_tree2
    │   ├── ssub_tree2
    │   └── tree3.txt
    ├── sub_tree2
    │   └── tree4.txt
    ├── tree1.txt
    └── tree2.txt
    
    6 directories, 4 files
    
    >> tr 로 시작하고 다음에 아무 2글자 나오고 그뒤에 1 이 나오는 파일 검색
    ~/Temp/tree_test$tree -P "tr??1*"
    .
    ├── sub_tree1
    │   ├── ssub_tree1
    │   │   ├── sssub_tree1
    │   │   └── sssub_tree2
    │   └── ssub_tree2
    ├── sub_tree2
    └── tree1.txt
    
    6 directories, 1 file

     

    1-6> -I 옵션

    : 선택된 파일들을 제외하고 리스트 합니다.

     
    >> tree1 으로 시작하는 이름을 제외하고 리스트
    ~/Temp/tree_test$tree -I "tree1*"
    .
    ├── sub_tree1
    │   ├── ssub_tree1
    │   │   ├── sssub_tree1
    │   │   └── sssub_tree2
    │   ├── ssub_tree2
    │   └── tree3.txt
    ├── sub_tree2
    │   └── tree4.txt
    └── tree2.txt

     

    1-7> --prune 옵션

    : 텅빈 디렉토리 표시 안함

     
    ~/Temp/tree_test$tree
    .
    ├── sub_tree1
    │   ├── ssub_tree1
    │   │   ├── sssub_tree1
    │   │   └── sssub_tree2
    │   ├── ssub_tree2
    │   └── tree3.txt
    ├── sub_tree2
    │   └── tree4.txt
    ├── tree1.txt
    └── tree2.txt
    
    >> 텅빈 디렉토리 출력 안함.
    $tree --prune
    .
    ├── sub_tree1
    │   └── tree3.txt
    ├── sub_tree2
    │   └── tree4.txt
    ├── tree1.txt
    └── tree2.txt
    ​

     

     

    1-8> -p 옵션

    : 파일 타입과 퍼미션 출력

    1-9> -u 옵션

    : 유저이름 또는 UID 출력

    1-10> -s 옵션

    : 파일 사이즈 출력

     
    ~/Temp/tree_test$tree -s
    .
    ├── [       4096]  sub_tree1
    │   ├── [       4096]  ssub_tree1
    │   │   ├── [       4096]  sssub_tree1
    │   │   └── [       4096]  sssub_tree2
    │   ├── [       4096]  ssub_tree2
    │   └── [        606]  tree3.txt
    ├── [       4096]  sub_tree2
    │   └── [          6]  tree4.txt
    ├── [          6]  tree1.txt
    └── [          6]  tree2.txt
    
    6 directories, 4 files

     

    1-11> -h 옵션

    : 인간이 읽기 쉽게 사이즈 정보 표시

     
    ~/Temp/tree_test$du -h
    4.0K    ./sub_tree1/ssub_tree2
    4.0K    ./sub_tree1/ssub_tree1/sssub_tree1
    4.0K    ./sub_tree1/ssub_tree1/sssub_tree2
    12K     ./sub_tree1/ssub_tree1
    24K     ./sub_tree1
    8.0K    ./sub_tree2
    48K     .

     

    1-12> --du 옵션

    : 각각의 디렉토리에 대해서 안의 서브디렉토리와 파일의 크기를 합산해서 사이즈정보 출력

    총크기는 "du -c " 명령과 동일

     

    ~/Temp/tree_test$tree --du
    .
    ├── [      21086]  sub_tree1
    │   ├── [      12288]  ssub_tree1
    │   │   ├── [       4096]  sssub_tree1
    │   │   └── [       4096]  sssub_tree2
    │   ├── [       4096]  ssub_tree2
    │   └── [        606]  tree3.txt
    ├── [       4102]  sub_tree2
    │   └── [          6]  tree4.txt
    ├── [          6]  tree1.txt
    └── [          6]  tree2.txt
    
    >> sub_tree1 에대한 du -c 의 결과와 동일
    ~/Temp/tree_test$du -c -b sub_tree1
    4096    sub_tree1/ssub_tree2
    4096    sub_tree1/ssub_tree1/sssub_tree1
    4096    sub_tree1/ssub_tree1/sssub_tree2
    12288   sub_tree1/ssub_tree1
    21086   sub_tree1
    21086   total

     

     

    1-13>-o 옵션

    : 결과를 지정된 파일 이름으로 저장합니다.

    ~/Temp/tree_test$tree -h -a -p -o tree_out.txt
    
    ~/Temp/tree_test$cat tree_out.txt
    .
    ├── [drwxrwxr-x 4.0K]  sub_tree1
    │   ├── [drwxrwxr-x 4.0K]  ssub_tree1
    │   │   ├── [drwxrwxr-x 4.0K]  sssub_tree1
    │   │   └── [drwxrwxr-x 4.0K]  sssub_tree2
    │   ├── [drwxrwxr-x 4.0K]  ssub_tree2
    │   └── [-rw-rw-r--  606]  tree3.txt
    ├── [drwxrwxr-x 4.0K]  sub_tree2
    │   └── [-rw-rw-r--    6]  tree4.txt
    ├── [-rw-rw-r--    6]  tree1.txt
    ├── [-rw-rw-r--    6]  tree2.txt
    ├── [-rw-rw-r--    6]  .tree_hidden.txt
    └── [-rw-rw-r--    0]  tree_out.txt
    
    6 directories, 6 files

     

     

    < 기타 >

    A> "[error opening dir]" 에러 수정

    $tree -P tree*
    tree2.txt [error opening dir]
    tree_out.txt [error opening dir]
    
    0 directories, 0 files
    
    >> 패턴적용시 "" or ''을 사용해야 에러가 나오지 않습니다.
    ~/Temp/tree_test$tree -P "tree*"
    .
    ├── sub_tree1
    │   ├── ssub_tree1
    │   │   ├── sssub_tree1
    │   │   └── sssub_tree2
    │   ├── ssub_tree2
    │   └── tree3.txt
    ├── sub_tree2
    │   └── tree4.txt
    ├── tree1.txt
    ├── tree2.txt
    └── tree_out.txt
    
    6 directories, 5 files
    ~/Temp/tree_test$

     

    행복한 하루 되세요.

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    반응형