터미널에서 디렉토리 경로를 변경(cd)하고, 디렉토리 내 파일 리스트를 출력해주는(ls) 커맨드에 관한 내용입니다.
터미널 경로 Indicator ▼
터미널에는 경로를 나타내는 여러 표현들이 있습니다. cd, ls를 활용하기 위해선 반드시 익혀두어야 하는 내용이므로, 아래와 같이 정래해두었습니다.
- / : Root directory라는 의미로써 만약 /Users 라고 명시하였을 때는, 파일 구조의 가장 상위 단계인 루트(Root)부터 Users 파일 혹은 폴더를 가르킵니다. 맥에서 보통 사용자를 생성하여 사용할 시, 사용자는 이 /Users 폴더 안의 사용자 이름 폴더 안에서 작업을 하게 됩니다.
- ~ : Home directory라는 의미로써 현재 접속중인 사용자의 Home 디렉토리를 나타냅니다. 아래 사진을 보시면 두개는 같은 폴더라는 것을 알 수 있습니다.
- ./ : 현재 사용자가 있는 경로를 가르킵니다. 현재 경로에서 작업을 할 때에는 생략 가능합니다.
- ../ : 현재 경로에서 한단계 위의 경로를 가르킵니다.
같은 폴더를 가르키는 터미널과 파인더(홈 디렉토리) ▼
$ cd ~ //사용자 홈 디렉토리로 이동 $ ls //현재 위치한 경로 안의 내용 출력
cmd + shift + h //파인더에서 보는 현재 접속 중인 사용자 디렉토리입니다.
.. | 한단계 위 디렉토리
경로 Indicator ‘..’을 통해 한 단계 위의 디렉토리의 내용물을 ls로 리스팅하였습니다. ▼
$ ls .. //~ 디렉토리 안의 내용물 출력
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 | ~ (563): cd Music ~/Music (564): ls ./ .localized Logic/ ../ Audio Music Apps/ iTunes/ .DS_Store GarageBand/ ~/Music (565): ls .. ./ .ssh/ ../ .subversion/ .CFUserTextEncoding .tooling/ .DS_Store .viminfo .Trash/ .zlogin 중략 .lesshst Sites/ .mkshrc Wine Files/ .mysql_history blog local.spf .nchsoftware/ howcis.pem .oracle_jre_usage/ server.crt .profile server.csr .putty/ server.key .rnd server.key.org .rvm/ unbuntu blog.spf .spumux@ | cs |
cd | 디렉토리 변경
아래 예시 두가지만 알면, 어느 디렉토리든 접근이 가능합니다.(권한이 있다는 전제하에)
1) 절대 경로를 이용한 방법
Root부터 시작을 하기 때문에 /Users/사용자 이름을 꼭 명시 해주어야합니다. 그렇지 않다면, cd ~/Music과 같이 홈 디렉토리 경로 Indicator를 사용해야 합니다.
1 2 | ~ (576): cd /Users/SeongjuneKim/Music // ~/Music과 같음 ~/Music (577): | cs |
2) 상대 경로를 이용한 방법
이미, Home Directory에 있으므로, ./Music으로 현재 폴더 내의 Music 폴더를 들어가게 됩니다. 이 때 ./는 생략 가능합니다. 또한 ‘cd ..’를 통해 한단계 위 경로로 이동함을 알 수 있습니다.
cd Music // cd ./Music와 같음 cd .. //한 단계 위의 경로
1 2 3 4 | ~ (576): cd /Users/SeongjuneKim/Music ~/Music (577): cd .. ~ (578): cd Music ~/Music (579): cd .. ~ (580): cd ./Music ~/Music (581): | cs |
ls | 파일 리스트 출력
디렉토리(폴더)를 자유롭게 드나들 수 있는 상황이니, 폴더 안의 파일들을 살펴보는 방법에 대해 이야기 해보도록 하겠습니다.
ls 플래그 ▼
ls 커맨드는 기본적으로 디렉토리 내의 구성물들을 보여주는 커맨드입니다. 대표적인 플래그(아래)와 함께 ls -l, ls -a, ls -aF 등으로 조합하여 많이 사용됩니다.
- -a : show hidden file/folders.
- -F : Display a slash(‘/’) for directory, an asterisk(‘*’) for executable file, at sign(‘@’) for symbolic link… etc.
- -l : shown as list.
숨겨진 파일 보기 ▼
ls를 통해 디렉토리 내 숨겨진 파일 등을 모두 볼 수도 있습니다(사실, 현재 파인더를 통해 보고 계신 그 파일들은 모든 파일이 아닙니다). 디렉토리로 이동하여 ls -a(모든 파일 리스팅)를 한번 해보시길 바랍니다.
ls -a
필자는 보통 ‘ls -aF’를 주로 사용하고 필요에 따라 ‘-l’ 플래그를 추가하여 사용합니다. 아래 예시를 보시면 쉽게 이해하실 수 있으실 겁니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | $ ls -aF .bash_history .zlogin .bash_profile .zshrc .bash_profile.swp Applications/ .bash_sessions/ Books/ .bashrc Desktop/ … .rvm/ unbuntu blog.spf $ ls -alF drwxr-xr-x+ 54 SeongjuneKim staff 1836 Jul 19 16:08 ./ drwxr-xr-x 5 root admin 170 May 10 17:49 ../ -r——– 1 SeongjuneKim staff 7 May 16 22:49 .CFUserTextEncoding -rw-r–r–@ 1 SeongjuneKim staff 22532 Jul 19 15:33 .DS_Store drwx—— 2 SeongjuneKim staff 68 Jul 19 15:21 .Trash/ -rw-r–r– 1 SeongjuneKim staff 9107 Jul 18 13:24 .bash_history -rw-r–r– 1 SeongjuneKim staff 794 Jul 5 10:49 .bash_profile -rw-r–r– 1 SeongjuneKim staff 12288 Jul 19 16:08 .bash_profile.swp drwx—— 86 SeongjuneKim staff 2924 Jul 16 23:52 .bash_sessions/ -rw-r–r– 1 SeongjuneKim staff 138 Jun 19 18:37 .bashrc drwxr-xr-x 9 SeongjuneKim staff 306 Jun 19 17:56 .composer/ drwx—— 6 SeongjuneKim staff 204 Jun 19 23:30 .config/ | cs |
* .bash_profile에 내가 원하는 커맨드 + 플래그를 alias로 등록해두시면 매번 플래그를 입력하지 않아도 편하게 사용하실 수 있습니다.
$ vim ~/.bash_profile
alias ls="/bin/ls -aF" 추가
이상입니다. 질문 사항은 댓글로 부탁 드립니다.
[…] 뜻이 이해가 되지 않거나, 경로에 관하여 헷갈리는 부분이 있다면, 이곳으로 가서 참조 […]