개요
리눅스를 쓰다보면 쉘스크립트, 특정 심볼릭 링크등을 한 특정폴더에 몰아넣고 쓰는경우가 많다.
이럴 때 절대경로를 치는것보단 CDPATH 값을 추가해서 쓰면 더욱 더 쉽게 경로를 이동할 수 있다.
적용법
1 2 |
localhost@ubuntu:~$ sudo vi /etc/profile [sudo] password for localhost: |
/etc/profile 의 경로를 editor를 통해 불러온다. 해당 파일의 권한은 root 권한이 필요하므로 sudo 를 통해 사용했다.
만약, 특정 계정에만 적용을 하려면 .bashrc 를 editor로 연다.
열고 아래와 같이 export 를 추가한다.
1 2 3 4 5 |
export CDPATH=$CDPATH:/home/localhost/OPER:/home/localhost/log:/home/localhost/Prod:/home/localhost #/home/localhost/OPER 경로 가 최우선 PATH 이다. #:(클론) 을 기준으로 여러 경로를 설정가능하다. #/home/localhost/OPER 가 1순위, /home/localhost/log 가 2순위... 순이다. #만약 OPER와 log 폴더에 동일한 경로나 파일이 있는경우 먼저 작성한 OPER에 있는 폴더가 우선권이 된다. |
이 CDPATH는 먼저 작성한 순이 가장 우선순위이다.
예를들어 /home/localhost/OPER 폴더와 /home/localhost/log 폴더에 동일한 폴더명이 있는경우, cd 를 통해 동일한 폴더명을 입력하거나, 명령어를 실행할 때 /home/localhost/OPER 의 폴더에 있는것으로 먼저 수행한다.
OPER, log, Prod, localhost 폴더를 기준으로 검사를 해보고, 없는경우에는 현재 있는 폴더로 수행한다.
즉, 좌측에 먼저 작성한 경로를 최우선으로, 콜론 값 뒤를 두
:wq 로 저장 후 아래와 같이 명령어를 입력한다.
1 2 |
localhost@ubuntu:~$ source /etc/profile localhost@ubuntu:~$ |
이제 적용이 되었을 것이다. 이제 실제로 수행해보자.
수행법
1 2 3 4 5 6 7 |
localhost@ubuntu:~$ ls -la total 224 drwxr-xr-x 27 localhost localhost 4096 Oct 30 23:10 . drwxr-xr-x 3 root root 4096 Apr 21 2017 .. lrwxrwxrwx 1 localhost localhost 8 Oct 5 16:57 log -> /var/log drwxrwxr-x 2 localhost localhost 4096 Oct 13 07:57 OPER drwxrwxr-x 2 localhost localhost 4096 Oct 13 07:57 Prod |
/home/localhost 에 위와 같은 폴더가 있다고 치자.
그리고, 각 폴더에는 이러한 폴더들이 있다고 가정한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
localhost@ubuntu:~/OPER$ pwd /home/localhost/OPER localhost@ubuntu:~/OPER$ ls -la total 8 drwxrwxr-x 2 localhost localhost 4096 Oct 13 07:57 . drwxr-xr-x 27 localhost localhost 4096 Oct 30 23:10 .. lrwxrwxrwx 1 localhost localhost 13 Aug 24 23:44 ----1 -> /var/www/----1 lrwxrwxrwx 1 localhost localhost 13 Apr 21 2017 ----2 -> /var/www/----2 lrwxrwxrwx 1 localhost localhost 13 Aug 24 23:44 ----3 -> /var/www/----3 ------------------------------------------------- localhost@ubuntu:~/log$ pwd /home/localhost/log localhost@ubuntu:~/log$ ls -la total 654992 drwxr-xr-x 16 root syslog 4096 Oct 30 06:25 . drwxr-xr-x 14 root root 4096 Apr 21 2017 .. drwxr-x--- 2 root adm 4096 Oct 30 06:25 apache2 drwxr-xr-x 2 apacheds apacheds 4096 Oct 30 2015 apacheds |
만약 내가 절대경로 /home/localhost/log/apache2 폴더의 경로를 가고 싶다라고 가정하면
단순하게 cd apache2
를 입력한다.
그럼 정상적으로 /home/localhost/log/apache2 의 경로로 연결이 된다.
1 2 3 4 5 6 |
localhost@ubuntu:~$ pwd /home/localhost localhost@ubuntu:~$ cd apache2 /home/localhost/log/apache2 localhost@ubuntu:~/log/apache2$ pwd /home/localhost/log/apache2 |
만약, 현재 경로가 /home/localhost/log/apache2 에서 /home/localhost/OPER/html 폴더로 들어가야 한다고 가정하자.
일일히 cd /home/localhost/OPER/html
보다는 cd html
만 입력하면 된다.
1 2 3 4 5 6 |
localhost@ubuntu:~/log/apache2$ pwd /home/localhost/log/apache2 localhost@ubuntu:~/log/apache2$ cd html /home/localhost/OPER/html localhost@ubuntu:~/OPER/html$ pwd /home/localhost/OPER/html |
만약, 현재 경로가 /home/localhost/OPER/html 인데, log 폴더에 있는 apacheds 에 들어가고 싶다 하면 당연히 cd log/apacheds
만 입력하면 된다.
1 2 3 4 5 6 |
localhost@ubuntu:~/OPER/html$ pwd /home/localhost/OPER/html localhost@ubuntu:~/OPER/html$ cd log/apacheds /home/localhost/log/apacheds localhost@ubuntu:~/log/apacheds$ pwd /home/localhost/log/apacheds |
정리
한마디로, 절대경로로 접근하는것 보다는 자주 사용하는 폴더들을 한곳에 모아놓고 짧은 cd 경로만 넣어서 즉시 접근할 수 있도록 해주는게 CDPATH 의 기능이다.
이처럼 고정적으로 정해진 폴더값을 통해 일일히 들어가지 말고, 편하게 접근해보자.