리오집사의 기억저장소

02. 디렉토리와 파일 사용하기 [파일 다루는 명령어]

★파일 복사하기 : cp (copy)

  파일 복사 외에도 디렉토리도 복사할 수 있다.

 

 -두 인자가 모두 파일인 경우 : cp f1 f2 (f1은 원본 파일이고 f2는 복사된 파일이다. f2가 이미 존재했던 파일이라면 덮어씌어지고 원래 내용이 사라진다.)

 

 -두 번째 인자가 디렉토리인 경우 : cp f1 디렉토리명 (해당 디렉토리 안에 f1이라는 이름으로 복사한다.)

                                                 cp f1 디렉토리명/f2 (해당 디렉토리 안에 f2라고 지정해준 새로운 이름으로 복사된다.)

 

 -인자를 여러 개 지정하는 경우 : 마지막 인자는 반드시 디렉토리여야 하고, 앞의 모든 인자들(파일들)이 마지막 인자인 디렉토리 내에 복사된다.

                                               ex) cp  /etc/hosts  /etc/services  temp <-/etc/hosts 와 /etc/services를 temp 디렉토리에 복사 

 

 -디렉토리를 복사할 경우에는 -r 옵션을 사용해야 한다. 안 그러면 오류 메세지 출력.

 

 -이미 있는 파일인 경우 원래 내용이 사라지는 걸 방지하기 위해 덮어쓸것인지 묻는 명령어 -i 옵션을 사용하면 좋다.

 

 

 

★파일 이동하기 : mv ( move)

  파일(디렉토리)을 다른 디렉토리로 이동하거나 파일명(디렉토리)을 바꿀 때 사용한다.

 

 -파일을 파일로 이동하기 : 파일을 다른 파일로 이동하는 건 결국 원본 파일명을 다른 파일명으로 바꾸는 작업이라고 볼 수 있다.

                                      두 번째 인자로 지정한 파일명이 이미 존재하는 파일이면 원본 파일의 내용을 덮어쓰고 기존의 내용이 삭제되고,

                                                                                  존재하지 않는 파일이라면 새 파일이 생성됨.

                                      ex) mv  text1  data1  <-text1파일을 data1 파일로 이동. 결과적으로 text1이 data1로 파일명이 바뀐 것이다.

 

 -파일을 다른 디렉터리로 이동하기

ex) mv  파일 디렉터리 <-디렉터리로 파일이 이동한다.

ex) mv  파일 디렉토리/파일2   <- 디렉터리로 파일이 파일2로 이름이 바뀌어서 이동한다.

 

 -디렉터리를 디렉터리로 이동하기 : mv  temp2  temp3

   두번째 인자인 temp3이 기존에 있던 디렉터리가 아닐 경우에는 temp2가 temp3으로 디렉터리의 이름이 변경되고,

    두번째 인자인 temp3이 기존에 있던 디렉터리일 경우에는, 원본 디렉터리인 temp2가 temp3 디렉터리 아래로 이동한다.

 

 

 

★파일 삭제하기 : rm (remove)

  rm 명령은 완전 삭제되어 복구 불가능하므로 rm으로 파일 삭제를 할 경우에는 신중하자.

  -i 옵션을 사용하면 정말 삭제할 것인지 물어본다. 에일리어스 기능을 사용하여 rm 명령을 rm -i 로 설정해 놓으면 좋다.

 

 -디렉토리 삭제하기 : 디렉터리도 파일이기 때문에 rm명령으로 디렉터리도 삭제 가능.

                               rmdir 명령으로도 디렉터리 지울 수 있으나, 디렉터리가 비어 있어야 한다.

                               but, rm 명령은 디렉터리 차 있어도 삭제 가능.

                               복사 명령과 마찬가지로 디렉토리 지울 때는 -r 옵션을 써야 한다.

 

 

 

★파일 링크 : 

        짧게 줄인 다른 이름을 붙여서 간단하게 사용할때 유용하다. 하드 링크, 심벌링 링크 두 가지 종류가 있다.

        하드 링크 <- 기존 파일에 새로운 파일명을 추가로 생성하는 것

        심볼릭 링크 <- 윈도의 바로가기 기능과 같은 개념

 

 -리눅스 파일의 구성 : 리눅스 파일은 [파일명+inode+데이터 블록] 으로 구성된다.

                                파일명<- 사용자가 파일에 접근할 때 사용하는 파일의 이름

                                inode <- 파일에 관한 정보를 가지고 있는 구조체. 외부적으로는 번호로 표시되고, 

                                              내부적으로는 파일 종류,크기,소유자,파일 변경 시간, 파일명 등의 파일 상세 정보와 데이터 블록의 주소가 저장되어 있다.

                                              ls -l 명령으로 출력되는 정보는 inode에 저장되어 있는 파일 상세 정보이다.

 

 

 

★빈 파일 만들기, 수정 시간 변경하기 : touch

  인자로 지정한 파일이 존재하지 않으면 내용이 없는 빈 파일을 생성하고,

  이미 있는 파일에 대해 touch 명령을 옵션 없이 사용하면 파일의 수정 시간이 현재 시간으로 변경됨.

 

 

 

★파일 내용 검색하기 : grep

  파일 내에서 특정 문자열을 검색할 대 사용한다.

 

 -형식 : grep  [옵션]  패턴  [파일명]

                      -i : 대,소문자 모두 검색

                      -l : 해당 패턴을 포함하는 파일 이름 출력

                      -n : 행 번호를 출력.

 

 

 

★파일 찾기 : find
  하위폴더에 존재하는 파일을 찾아주는 명령어. grep은 파일 내용을 검색하고 find는 다양한 조건에 맞는 파일을 찾는다.

 

 -형식 : find  경로검색조건  [동작]

 -옵션 :  -name filename : 파일 이름으로 검색

             -type  파일종류 : 파일 종류로 검색

 -동작 :  -exec  명령  {}  \;  :  검색된 파일에 명령을 실행한다.

             -ok  명령  {}  \;  :  사용자의 확인을 받아서 명령을 실행한다.

 

  ex)  find  /bin  -name  ls   <- /bin 디렉터리에서 ls 파일의 위치를 찾는 것

        find  /home  -user  prankster   <- /home 디렉터리에서 사용자 계정이 prankster인 파일을 찾는 것

        find  /tmp  -user  prankster  -exec  rm  {}  \;    <- /tmp 디렉터리 아래에 있는 prankster 계정 소유의 모든 파일을 삭제.
        find  /tmp  -user  prankster  -ok  rm  {}  \;   <- exec 대신 ok 사용했으므로 검색한 파일을 삭제하기 전에 하나씩 확인한다.


반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band