: 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
.
├── 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$
B> tree 명령이 동작 안할 경우
$ tree
Command 'tree' not found, but can be installed with:
sudo snap install tree # version 1.8.0+pkg-3fd6, or
sudo apt install tree # version 2.0.2-1
See 'snap info tree' for additional versions.
$ sudo apt install tree
[sudo] password for xxx:
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages were automatically installed and are no longer required:
libcapstone4 libgpiod2 libhidapi-hidraw0 libjaylink0 libjim0.79 libusb-0.1-4
Use 'sudo apt autoremove' to remove them.
The following NEW packages will be installed:
tree
0 upgraded, 1 newly installed, 0 to remove and 147 not upgraded.
Need to get 47.9 kB of archives.
After this operation, 116 kB of additional disk space will be used.
Get:1 http://kr.archive.ubuntu.com/ubuntu jammy/universe amd64 tree amd64 2.0.2-1 [47.9 kB]
Fetched 47.9 kB in 1s (53.6 kB/s)
Selecting previously unselected package tree.
(Reading database ... 252977 files and directories currently installed.)
Preparing to unpack .../tree_2.0.2-1_amd64.deb ...
Unpacking tree (2.0.2-1) ...
Setting up tree (2.0.2-1) ...
Processing triggers for man-db (2.10.2-1) ...
도움이 되셨다면 하트 선사 부탁드려요.
그럼 수고하세요.
반응형
'리눅스 (linux) > 명령어' 카테고리의 다른 글
리눅스 route 명령어 사용법 (-C -F -v -n -e -A -net -host reject add del) (0) | 2024.07.15 |
---|---|
리눅스 lsusb 명령어 사용법(-v,-s,-d,-D,-t,-V) (0) | 2024.05.02 |
리눅스 tail 명령어 사용법 (-c, -f, -n, -s, -v) (0) | 2022.02.23 |
리눅스 cat 명령어 사용법 ( -b, -n, -E, -s, -v, -T ) (0) | 2022.02.22 |
리눅스 grep 명령어 사용법 ( -r, -v, -E, -i, -s, -n, -h, -w, -f, -x) (0) | 2022.02.21 |