개발노트 3 - Command <Tree>
개발자라면 터미널에 익숙해야 마땅하겠지만, 서비스하는 서버는 정작 리눅스 계열이고,
개발환경은 윈도우인 경우, 익숙해 지기 어려운 상황이 되기도 하죠.
그래서 리눅스도 써보고, 맥 기반에서 개발을 해보는 일은 터미널 명령어가 익숙해지는데 도움이 되는 환경인 거 같습니다.
저는 Mac 기반으로 사용한지 5년이 넘어가는 거 같습니다.
기본명령어는 아니지만, 개발강좌나 블로그에서 종종 보는 <ls> 명령어가 아닌 <tree> 명령어를 오늘 소개해보려고 합니다.
설치
별도 설치가 필요합니다. 터미널에서 아래 명령어를 호출합니다.
brew install tree
내용
디렉토리 정보를 트리구조로 한눈에 볼 수 있는 명령어
> man tree
TREE(1) TREE(1)
NAME
tree - list contents of directories in a tree-like format.
SYNOPSIS
tree [-acdfghilnpqrstuvxACDFQNSUX] [-L level [-R]] [-H baseHREF] [-T title] [-o filename]
[--nolinks] [-P pattern] [-I pattern] [--inodes] [--device] [--noreport] [--dirsfirst] [--ver-
sion] [--help] [--filelimit #] [--si] [--prune] [--du] [--timefmt format] [--matchdirs]
[--fromfile] [--] [directory ...]
DESCRIPTION
Tree is a recursive directory listing program that produces a depth indented listing of files,
which is colorized ala dircolors if the LS_COLORS environment variable is set and output is to
tty. With no arguments, tree lists the files in the current directory. When directory argu-
ments are given, tree lists all the files and/or directories found in the given directories
each in turn. Upon completion of listing all files/directories found, tree returns the total
number of files and/or directories listed.
By default, when a symbolic link is encountered, the path that the symbolic link refers to is
printed after the name of the link in the format:
name -> real-path
If the `-l' option is given and the symbolic link refers to an actual directory, then tree
will follow the path of the symbolic link as if it were a real directory.
OPTIONS
Tree understands the following command line switches:
LISTING OPTIONS
-a All files are printed. By default tree does not print hidden files (those beginning
with a dot `.'). In no event does tree print the file system constructs `.' (current
directory) and `..' (previous directory).
-d List directories only.
-l Follows symbolic links if they point to directories, as if they were directories. Sym-
bolic links that will result in recursion are avoided when detected.
사용해보기
Spring init를 통해서 demo 프로젝트를 만들어보고, 디렉토리 정보를 <ls>와 <tree>로 비교해보겠습니다.
> mkdir init-project
> cd init-project
> ls
> spring init
Using service at https://start.spring.io
Content saved to 'demo.zip'
> ls -alrt
total 112
drwxr-xr-x 11 youth6erry youth6erry 352 4 28 21:47 ..
drwxr-xr-x 3 youth6erry youth6erry 96 4 28 21:47 .
-rw-r--r-- 1 youth6erry youth6erry 56016 4 28 21:47 demo.zip
>unzip demo.zip
Archive: demo.zip
inflating: mvnw
creating: src/
creating: src/test/
creating: src/test/java/
creating: src/test/java/com/
creating: src/test/java/com/example/
creating: src/test/java/com/example/demo/
inflating: src/test/java/com/example/demo/DemoApplicationTests.java
creating: src/main/
creating: src/main/java/
creating: src/main/java/com/
creating: src/main/java/com/example/
creating: src/main/java/com/example/demo/
inflating: src/main/java/com/example/demo/DemoApplication.java
creating: src/main/resources/
inflating: src/main/resources/application.properties
inflating: mvnw.cmd
inflating: .gitignore
inflating: pom.xml
creating: .mvn/
creating: .mvn/wrapper/
inflating: .mvn/wrapper/MavenWrapperDownloader.java
inflating: .mvn/wrapper/maven-wrapper.jar
inflating: .mvn/wrapper/maven-wrapper.properties
inflating: HELP.md
>ls
HELP.md mvnw mvnw.cmd pom.xml src
>tree
.
├── HELP.md
├── mvnw
├── mvnw.cmd
├── pom.xml
└── src
├── main
│ ├── java
│ │ └── com
│ │ └── example
│ │ └── demo
│ │ └── DemoApplication.java
│ └── resources
│ └── application.properties
└── test
└── java
└── com
└── example
└── demo
└── DemoApplicationTests.java
12 directories, 7 files
어떠신가요? <tree>명령어로 새로운 프로젝트 디렉토리 구성을 한눈에 파악해보시는건 어떨까요?
'개발 로그' 카테고리의 다른 글
메이븐 오류 해결 - Blocked mirror for repositories (0) | 2022.01.20 |
---|---|
개발노트 6 - JUnit Properties 로딩이 안될 때 해결 방법 (0) | 2021.08.18 |
개발노트 5 - IDEA 2020.1 org.springframework.beans.Factory does not exist 오류 해결 (0) | 2021.07.29 |
개발노트 4 - 스프링 부트의 의존성 라이브러리 버전 확인하기 (0) | 2021.07.28 |
개발노트-1 스프링부트 의존성 버전 확인하기 (0) | 2021.02.23 |