티스토리 뷰

1. Directory 구조

(1) Directory의 구조

* Directory는 folder이다. 

ls /User/junho 같이 사용하며, Mac OS에서는 open . 을 사용하여 해당 위치에 대한 default viewer를 열 수 있다.

/User/junho/ruby/projects 같은 경우, ~/ruby/project와 동일하다. 

~는 Home directory를 뜻하고, 이는 과거 초장기의 몇 키보드에서 ~와 home키가 같이 되어 있었기 때문에 ~가 home directory를 가리키게 된 것이다.

(2) sudo 명령어

먼저 opt directory란 로컬 시스템 관리자 용으로 예약되어 있기 때문에, 해당 /opt에 대한 기본 사용 권한은 소유권 root에 있다. 

따라서 $ touch /opt/foo 를 실행하면 permission denied라고 뜨는데, 이는 normal user는 /opt를 modify할 권한이 없다. 이때 이 modify를 허가 해 주는 명령어가 sudo이다.

 

※ 주의 : 모든 unix directories는 root directorydml sub-category이고, backslash가 아닌 /(forward slash)를 사용한다.

 

2. Directory 생성

(1) Directory 생성

file을 만드는것은 touch를 사용하거나, 안의 내용을 >(redirect character)를 통해 만들었다.

Directory를 생성하는 명령어는 mkdir 명령어이다.

Directory를 복사하는 명령어는 파일과 마찬가지로 mv를 사용한다.

예를들어 text_files라는 directory에 해당 위치의 txt파일을 옮기려 한다면, mv *.txt text_files/ 라 입력 하면 된다.

또한 ls의 -d를 사용하여 디렉토리에 대한 정보를 -l 옵션과 같이 사용해서 알 수 있다.

mkdir -p 옵션을 통해 mkdir -p foo/bar/baz 등 한번에 subcategory들을 만들 수 있다.

(2) Directory 변경 : cd(change directory) 명령어를 사용한다.

cd text_files/ 를 통해 현재의 directory(home)에서 text_files로 이동할 수 있고,

pwd(print working dirctory) 명령어를 통해 현재 파일 위치를 알 수 있다.

 

3. Navigating Directories

(1) cd명령어를 통해 directory 변경

..는 상위 디렉토리, .(dot)는 현재 디렉토리를 가리킨다.

따라서 cd .. , cp ~/text_files/등으로 directory 변경이 가능하다.

cd - 는 이전 위치했던 directory로 이동하기 때문에 directory switching 할때 많이 쓴다.

 

 

(2) cp명령어를 통한 directory 복사

cp ~/text_files/sonnets.txt . 를 통해서 . (현재 디렉토리)에 text_files 폴더안의 sonnets.txt를 복사 할 수 있다.

 

(3) find 명령어를 통해 파일 이름 검색

find <directory> -name '*.txt' : txt로 끝나는 파일 이름을 dirctory에서 찾아 보여 준다.

find 명령어에도 많은 옵션들이 있지만  -name을 통해 이름 검색하는것이 대부분이다.

 

(4) command를 결합시키기

:나 &&를 통해 command를 결합 시킬 수 있다.

command를 combining 시키는 것은 unix 프로그램인 configure와 make를 사용하여 software를 설치 할 때 자주 사용한다.

예를들어 $ ./configure ; make ; make install 과같은 방식으로.

&&와 ;의 차이점은 ;은 이전 command의 성공 여부 상관없이 모두 실행되지만, &&는 이전 command가 성공해야 실행 되므로 이전 command가 다음 command에 영향을 줄 수 있기 때문에 &&를 주로 쓴다.

cd - 와 &&를 결합해서 많이 쓴다고 한다.

 

4. Directory 복사, 삭제 및 이름 변경 (renaming, copying and deleting)

Directory에 대한 복사(cp), 삭제(rm), grep 명령어는 -r(recursive) 옵션을 사용 한다.

(1) 복사 : cp -r <복사할디렉토리> <붙혀넣을디렉토리> 를 통한 dircetory 복사

 

(2) 이름변경 : mv를 통해서. 따로 옵션 필요 없으며 파일 이름 변경과 사용 동일하다.

 

※ / (trailing slash)의 유무에 대한 차이

 : /는 mv나 cd 명령어를 사용할 때에는 중요하지 않다. cd foo나 cd foo/나 동일하게 적용된다.

하지만 cp명령어에서는 끝 trailing slash의 유무가 중요한데, 예를들어 text_files를 복사한다고 했을때,

cp -r ../text_files . 와 cp -r ../text_files/ . 는 차이가 있다. 

전자는 text_file directory 전체를 현재 위치에 복사하는 것이지만 후자는 text_file안의 파일들을 현재 위치에 복사하는 것이다. 

따라서 안 파일들을 복사 할 때에는 cp -r ../text_files/ . 를 사용하는 것 보다, cp -r ../text_files/* . 를 통해 명시해 주는 것이 좋다.

 

(3) 삭제 : rmdir 명령어를 통해서 directory를 삭제 할 수 있다. 하지만 rmdir이 적용 되는 것은 directory가 비었을 때만 적용이 되므로, rmdir보다는 대부분 안의 content까지 삭제 가능한  rm -r 명령어를 많이 사용 한다.

하지만 rm -rf 명령어는 directory 뿐만 아니라 파일도 모두 삭제 하므로 사용할때 정말 조심해야 한다.

 

(4) Directory에서 grep의 활용

grep의 -r 명령어를 통해서 찾는 내용과 일치하는 파일의 위치를 알 수 있다.

grep -ri <string> <directory>를 사용하면 directory 내에서 string이 포함된 파일이 있는 파일의 위치를 알려준다.

(보통 찾는 단어의 대소문자 구별하지 않기 때문에 -ri형태로 많이 쓴다.)

따라서 특정 내용이 어느 파일에 있는지 모를때 쓰면 유용하다.

Directory에 대한 명령어

 

<추가 정리 할 것 : http에 대하여>

 

출처 : https://websetnet.net/ko/linux-what-is-opt-directory-and-how-to-open-opt-directory/

https://www.learnenough.com/command-line-tutorial

 

Learn Enough Command Line to Be Dangerous

A tutorial introduction to the Unix command line

www.learnenough.com

 

'Programming > Command Line' 카테고리의 다른 글

Github SSH 원격 접속을 통한 토큰 없이 push하기  (0) 2022.01.07
기본적인 Git 사용법  (0) 2022.01.05
Command Line - Inspecting Files  (0) 2021.07.05
Command Line - Manipulating files  (0) 2021.07.02
Command Line Basics  (0) 2021.07.01
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday