2010. 11. 10. 08:52
File system traverse(횡단)하기 (cd, pwd, dirs, pushd, popd)
2010. 11. 10. 08:52 in Research/Ubuntu
shell 사용자들이 대부분 사용하는 기초적인 명령중 changing directory(cd), 현재 디렉토리 구하기(pwd), 그리고 directory의 내용 나열하기(ls)등이 있습니다. 이제부터 덜알려진 명령을 확인해 보도록 합니다. 아래는 cd를 이용하여 변경하는 것을 보여줍니다.
$ cd $ cd $HOME $ cd ~ $ cd ~greenfish $ cd - $ cd $OLDPWD $ cd ~/public_html $ cd .. $ cd /usr/bin $ cd usr/bin |
만약, 현재의 directory를 알고 싶다면, pwd(print working directory)를 사용합니다.
$ pwd /home/greenfish |
symbolic link를 생성하는 것은 file system의 다른 부분으로 부터 접근 하는 방법을 제공합니다(2010/11/03 - [Research/Ubuntu] - Ubuntu File Type 이해하기 참고). 그러나 symbollic link는 parent directory를 어떻게 볼 수 있는지를 확인하는데 어려움이 따를때가 있습니다. 다음과 같은 symbolic link 생성 명령을 확인해 보시기 바랍니다.
$ cd $HOME ~$ ln -s /tmp tmp-link ~$ ls -l tmp-link lrwxrwxrwx 1 greenfish greenfish 4 2010-10-19 02:48 tmp-link -> /tmp ~$ cd tmp-link/ ~/tmp-link$ pwd /home/greenfish/tmp-link ~/tmp-link$ pwd -P /tmp ~/tmp-link$ pwd -L /home/greenfish/tmp-link ~/tmp-link$ cd -L .. ~$ pwd /home/greenfish ~$ cd tmp-link ~/tmp-link$ cd -P .. /$ pwd / |
이와 같이 pwd와 cd의 -P, -L 옵션은 symbolic link가 가리키는 directory 혹은 link 위치로 작업할 수 있도록 합니다. cd -L .. 은 HOME directory로 이동시켜주며, cd -P .. 는 고정 directory (/)로 이동시켜 줍니다. 이와 유사하게 pwd의 -P 와 -L은 고정 directory 혹은 link 위치를 보여주도록 합니다.
bash는 작업 directory의 list를 기억하고 있습니다. 이것은 이전에 방문한 directory로 돌아가는데 유용하게 사용됩니다. 그 list는 stack으로 기록되는데, pushd와 popd로 추가/삭제 할 수 있습니다.
~$ pwd /home/greenfish ~$ pushd /usr/share/man/ /usr/share/man ~ /usr/share/man/$ pushd /var/log/ /var/log /usr/share/man ~ /var/log$ dirs /var/log /usr/share/man ~ /var/log$ dirs -v 0 /var/log 1 /usr/share/man 2 ~ /var/log$ popd /usr/share/man ~ /usr/share/man$ pwd /usr/share/man /usr/share/man$ popd ~ ~$ pwd /home/greenfish |
dirs, pushd, 그리고 popd 명령은 stack에 있는 directory의 순서를 관리하는데 사용합니다. pushd -0은 현재의 directory를 stack의 최 상단에 push합니다. pushd -2 명령은 stack의 밑에서 부터 위로 3번째 directory에 push합니다.
'Research > Ubuntu' 카테고리의 다른 글
Ubuntu/Linux File 속성(Attribute) 변경하기 (0) | 2010.11.12 |
---|---|
Ubuntu에서 File 복사, Partition 백업 하기 (2) | 2010.11.11 |
File/Directory 권한 설정하기 (03) (0) | 2010.11.09 |
File/Directory 권한 설정하기 (02) (0) | 2010.11.09 |
File/Directory 권한 설정하기 (01) (0) | 2010.11.05 |