[MacOS] tree command

최근 터미널에서 작업을 자주 하고있는데 폴더 구조를 한번에 봐야하는 경우가 자주 있습니다.
전부터 tree 명령어를 알고 있었지만 자주 사용하지 않았는데 이번에 사용해보기 위해 설치했습니다.

MacOS에서 tree를 설치하기 위해서는 brew를 이용해서 설치합니다.
먼저 터미널을 열어 brew가 설치되어있는지 버전 명령어를 실행해봅니다.

1
2
3
$ brew -v
Homebrew 2.2.16
Homebrew/homebrew-core (git revision ffef; last commit 2020-05-17)

이때 brew가 설치되어 있지 않다면 https://brew.sh/에서 아래의 설치 명령어로 설치할 수 있습니다.

1
2
// brew 설치가 안된 분들만 해당
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

brew가 설치되었다면 brew install 명령어를 이용해 tree를 설치합니다.

1
2
3
4
5
$ brew install tree
Password:
Error: Running Homebrew as root is extremely dangerous and no longer supported.
As Homebrew does not drop privileges on installation you would be giving all
build scripts full access to your system.

저는 설치과정에서 permission 에러가 발생하였는데 아래의 명령어로 해결할 수 있었습니다.

1
2
3
$ sudo chown -R $(whoami) /usr/local/lib
Warning: tree 1.8.0 is already installed and up-to-date
To reinstall 1.8.0, run `brew reinstall tree`

설치는 완료했지만.. 경고가 뜨네요 1.8.0으로 재설치 하라고합니다.
따라서 다시한번 재설치를 해줬습니다

1
$ brew reinstall tree

이제 원하는 폴더에서 tree 명령어를 입력하시면 해당 폴더의 하위 폴더 구조를 볼 수 있습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
$ tree
.
|-- README.md
|-- chaincode
| |-- abac
| | `-- go
| | |-- abac.go
| | `-- vendor
| | |-- github.com
| | | |-- golang
| | | | `-- protobuf
| | | | |-- LICENSE
| | | | `-- proto
| | | | |-- clone.go
| | | | |-- decode.go
| | | | |-- deprecated.go
| | | | |-- discard.go
| | | | |-- encode.go
| | | | |-- equal.go
| | | | |-- extensions.go
| | | | |-- lib.go
| | | | |-- message_set.go
| | | | |-- pointer_reflect.go
| | | | |-- pointer_unsafe.go
| | | | |-- properties.go
| | | | |-- table_marshal.go
| | | | |-- table_merge.go
| | | | |-- table_unmarshal.go
| | | | |-- text.go
| | | | `-- text_parser.go
| | | |-- hyperledger
| | | | `-- fabric
| | | | |-- LICENSE
| | | | |-- core
| | | | | `-- chaincode
| | | | | `-- shim
| | | | | `-- ext
| | | | | |-- attrmgr
| | | | | | `-- attrmgr.go
| | | | | `-- cid
| | | | | |-- README.md
| | | | | |-- cid.go
| | | | | `-- interfaces.go
| | | | `-- protos
| | | | `-- msp
| | | | |-- identities.pb.go
| | | | |-- identities.proto
| | | | |-- msp_config.go
| | | | |-- msp_config.pb.go
| | | | |-- msp_config.proto
| | | | |-- msp_principal.go
| | | | |-- msp_principal.pb.go
| | | | `-- msp_principal.proto
| | | `-- pkg
| | | `-- errors
| | | |-- LICENSE
| | | |-- README.md
| | | |-- appveyor.yml
| | | |-- errors.go
| | | `-- stack.go
| | `-- vendor.json