[리눅스] 디렉터리와 파일 사용하기 3

2022. 9. 16. 05:07·학교 공부/리눅스

3.5 파일 복사하기

  - cp [옵션] [파일1(디렉터리1)] [파일2(디렉터리2)] ex) cp file1 file2 : file2에다 file1을 복사함.

  - 옵션 -i : 파일2가 존재하면 덮어쓸 것인지 물어봄. ex) cp -i /etc/hosts text1

  -r : 디렉터리를 복사할 때 지정함.

  - 두 인자가 모두 파일인 경우 : 두 번째 인자로 지정한 파일이 존재하지 않는 경우에는 원본 파일을 복사해서 새로 만듬.

  - 두 번째 인자가 디렉터리인 경우 : 디렉터리는 당연히 미리 만들어져 있어야하고, 파일을 해당 디렉터리 아래에 복사한다!

  - 인자를 여러 개 지정하는 경우 : 파일 여러 개 지정 가능, but 마지막 인자가 반드시! 디렉터리여야함.

  - 디렉터리 복사하기 : 디렉터리 복사할 때 -r 옵션 안쓰면 오류뜸! 

      ex) cp -r tmp1 tmp2

  - 두 번째 인자로 지정한 디렉터리가 이미 있는 디렉터리인 경우 : 원본 디렉터리가 목적지 디렉터리 아래에 원본 디렉터리와 같은 이름으로 복사됨.

 

3.6 파일 이동하고 파일명 바꾸기

  - mv [옵션] [파일1(디렉터리1)] [파일2(디렉터리2)] ex) mv file1 file2

  - 옵션 -i : 파일2(디렉터리2)가 존재하면 덮어쓸 것인지 물어봄.

  - 파일을 파일로 이동하기 ( 파일명 바꾸기 ) : 결국 원본 파일의 이름을 다른 이름으로 바꾸는 작업이랑 같음!

  - 파일을 다른 디렉터리로 이동하기 : 두 번째 인자로 디렉터리를 지정하는 경우 원본 파일을 지정한 디렉터리로 이동함.

 

  - 디렉터리를 디렉터리로 이동하기 ( 디렉터리명 바꾸기!! )

  - 두 번째 인자가 존재하는 디렉터리가 아닌 경우면 그냥 무난하게 디렉터리명 변경됨.

  - 두 번째 인자가 존재하는 디렉터리면 원본 디렉터리가 두 번째 인자 디렉터리 아래로 이동함.

 

3.7 파일 삭제하기

  - rm [옵션] [파일(디렉터리)]

  - 옵션 -i : 파일을 정말 삭제할 건지 물어봄.

  -r : 디렉터리를 삭제할 때 지정함. ex) rm -r temp3
  -ri 형태로 섞어쓸 수 있음 ex) rm -ri temp3

 

3.8 파일 링크

  - 파일 링크 : 기존 파일에 새로운 이름을 붙이는 것임.

  - 하드 링크와 심벌릭 링크 두 종류가 있음.

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

  - 심벌릭 링크 : 원본 파일을 가리키는 새로운 파일을 만드는 것, 윈도우의 바로가기 기능과 비슷!

 

  - 리눅스 파일의 구성 : ‘파일명+inode+데이터 블록’ 형태임. 파일명은 말 그대로 파일 이름이고, inode는 외부적으로는 번호로 표시되고, 내부적으로는 파일 상세 정보임. ls -l 명령으로 출력되는 정보가 inode에 저장되어 있는 파일 상세 정보인 거! 데이터 블록은 011101 요 느낌임 ㅋ.ㅋ

 

  - 하드 링크는 원본 파일과 inode 값이 같음! 그래서 원본 삭제되어도 같은 inode 값을 가진 애가 있으면 그 애를 따라감. 하드 링크는 같은 파일에 이름만 다르게 붙이는 거지만, 파일 복사는 완전 독립적인 파일을 하나 만드는거임! gedit(텍스트 편집기) 열어서 data1.ln 파일의 내용을 수정한 후 data1 파일의 내용을 확인해보면 두 파일이 모두 바뀌어 있음!

  - 심벌릭 링크는 원본 파일과 inode 값이 다름. 그냥 바로가기처럼 원본 파일의 이름을 가리키는 파일임. 심벌릭 링크를 열고 수정하면 원본 파일이 수정됨. 원본 파일이 사라지게되면 역할을 수행할 수 없음. 장점은 전혀 다른 파일이라도 원본 파일과 이름이 같다면 계속 사용가능하다는 것임.

 

  - 하드 링크는 같은 파일 시스템에 있는 파일에만 생성할 수 있지만! 심벌릭링크는 디렉터리에도 지정할 수 있고 파일 시스템이 달라도 생성할 수 있음.

- 그래서! 하드 링크 만드는 법은 ln [옵션] [원본 파일] [링크 파일] 임!

  - 심벌릭 링크 만드려면 여기서 옵션에 -s 추가!

TMI ) ‘없애고 다른 파일로 교체’ => 이게 해킹의 기본 원리임!

 

3.9 파일과 관련한 유용한 명령

  - touch : 빈 파일 생성 or 파일 이미 만들어져있으면 수정 시간 변경하기

  - 옵션 -a : 접근 시간만 변경

  -m : 수정 시간만 변경

  -t [[CC][YY]MMDDhhmm[.ss]: 시간을 직접 입력한다.

      // CC : 연도 첫 두자리 (YY에 따라 자동으로 인식하기도 함! YY가 00~68이면 CC=20 )

          YY : 연도 마지막 두 자리 요런 느낌으로 달/월/시간/분/초 (연도 지정 안해도 괜춘)

  - 사용 예시 : touch test // test 파일 만들기

 

- grep : 파일 내 특정 문자열 검색하기 (지정한 패턴이 포함된 행을 찾음)

  - 옵션 -i : 대소문자 모두 검색

  -l : 지정한 패턴이 포함된 파일명을 출력

    (ex) grep -l hello *.c          ( .c로 끝나는 파일중에서 hello 포함된 파일명 출력)  

  -n : 행 번호를 출력함

    (ex) grep -n unix ~/*.txt (홈 디렉터리 밑에 모든 파일에서 unix 들어간 거 행 번호와 함께 출력)

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

 (grep은 약간 파일 내용을 검색하는디 find는 파일 생성 일자, 이름, 소유자 요런 느낌 좀 광범위)

 

  - find : 파일 검색하기 ( 지정한 위치에서 조건에 맞는 파일 검색함 )

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

  - 옵션 -name filename : 파일명으로 검색함

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

  -user loginID : 지정한 사용자가 소유한 모든 파일을 검색함

  -perm 접근 권한 : 지정한 사용 권한과 일치하는 파일을 검색함

  - 동작 -exec 명령 {}(/ 반대 작대기); : 검색된 파일에 명령을 실행함

  -ok 명령 {}(/ 반대 작대기); : 사용자의 확인을 받아서 명령을 실행함

  -print : 검색된 파일의 절대 경로명을 화면에 출력함

  -ls : 검색 결과를 긴 목록 형식으로 출력함

 

 

 

  - find 명령의 예시들

  - find /home -user user1 : user1이 소유자인 모든 파일 검색함.

  - find 명령으로 검색한 모든 파일을 대상으로 동일한 작업을 수행하려면 -exec나 -ok 옵션 지정!

  - find /tmp -user user1 -exec rm {} (/ 반대 작대기);  

  - *rm 명령과 {} 사이, {}와 (/ 반대 작대기) 반뜨시 공백이 있어야 함! (/ 반대 작대기);는 공백 없어야 함!!*

  - -exec와 (/ 반대 작대기); 사이에 기술된 부분이 ‘-user user1’ 옵션으로 검색된 파일에 적용될 명령임!

 

  - whereis : 지정한 경로에서 명령의 바이너리 파일이나 매뉴얼 파일의 위치를 찾는다.

  - whereis [옵션] [파일] ex) whereis ls

 

  - which : 명령어 파일의 위치를 찾아서 그 경로나 에일리어스를 출력한다.

  - which [명령] ex) which ls

저작자표시

'학교 공부 > 리눅스' 카테고리의 다른 글

[리눅스] 문서 편집하기 2  (0) 2022.09.16
[리눅스] 문서 편집하기 1  (0) 2022.09.16
[리눅스] 디렉터리와 파일 사용하기 2  (0) 2022.09.16
[리눅스] 디렉터리와 파일 사용하기 1  (0) 2022.09.16
[리눅스] 리눅스 입문  (0) 2022.09.16
'학교 공부/리눅스' 카테고리의 다른 글
  • [리눅스] 문서 편집하기 2
  • [리눅스] 문서 편집하기 1
  • [리눅스] 디렉터리와 파일 사용하기 2
  • [리눅스] 디렉터리와 파일 사용하기 1
듬듬
듬듬
  • 듬듬
    두드림
    듬듬
  • 전체
    오늘
    어제
    • 분류 전체보기 (280)
      • 📑 신입일기 (35)
      • 🍪 Web (1)
        • angular (1)
        • JavaScript (0)
      • 🧩 Node.js 공부 (2)
      • 🎲 알고리즘 공부 (192)
        • 프로그래머스 (76)
        • 백준 (96)
        • 코드업 (19)
      • 🎨 Tistory Customizing (1)
      • 💌 일상 (12)
        • 일상 (5)
        • 기록 (7)
      • 📜 자격증 (2)
        • 정보처리기사 (2)
      • 📗 spring boot 공부 (9)
      • 학교 공부 (20)
        • ICT 개론 (14)
        • 리눅스 (6)
      • ChatGPT 랑 놀기 (0)
  • 블로그 메뉴

    • 홈
    • 방명록
    • 글쓰기
  • 링크

    • 깃허브
  • 공지사항

  • 인기 글

  • 태그

    스프링 부트
    BOJ
    스프링부트
    티스토리챌린지
    정처기
    정보처리기사
    컨텐더스
    6월 목표
    코린이
    폰켓몬
    일기
    코테
    충무로
    신입일기
    피보나치수
    오블완
    찬양추천
    행렬덧셈
    프로그래머스
    codeup
    백준
    nodejs
    코민이
    코드업
    til
    오버워치
    카카오
    연습문제
    파이썬
    50문답
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
듬듬
[리눅스] 디렉터리와 파일 사용하기 3
상단으로

티스토리툴바