[리눅스] 파일 복사, 하드 링크와 소프트 링크

2023. 7. 10. 21:46·Computer Science

파일 복사와 링크

리눅스에는 파일을 복사할 수도 있고, 링크할 수도 있다.

복사는 말그대로 A라는 파일의 데이터와 같은 데이터를 가진 새로운 파일 B를 만들어 내는 것이고,

링크는 A라는 파일을 가리키는 B라는 파일을 새롭게 만들어내는 것이다.

 

파일 복사시에는 A파일과 B파일이 각각 다른 메모리를 차지하게 되고,

링크 시에는 메모리는 원본파일 A의 메모리와 B가 가리키는 메모리가 같다.


파일 복사

cp 명령어를 이용해서 파일을 복사할 수 있다.

cp [복사할 파일명] [새로 만들 파일명]

ex1) 파일 복사

같은 폴더 내에서 파일을 복사한다.

cp list.txt list_copy.txt


ex2) 폴더 복사

폴더와 해당 폴더 하위의 모든 파일을 복사한다.

폴더 생성

mkdir folder1

폴더 복사

cp -rf folder1 folder2


ex3) 폴더를 다른 폴더 하위 디렉터리로 복사

home1 폴더를 만들고, folder2 폴더를 home1 폴더 아래에, folder3이란 이름으로 복사해 보자.

cp -rf folder2 home1/folder3


ex 4) 하위의 모든 파일 복사 ( * )

home2 폴더를 새로 만들고, home1 하위의 모든 데이터를 home2로 복사해 보자.

cp -rf * ../home2/
  • home1에서 명령어 입력
  • * 은 모두라는 뜻


하드 링크와 소프트 링크

리눅스에서 파일을 링크하는 방법은 크게 두 가지가 있다. 하드 링크와 소프트링크이다.

하드링크와 소프트링크 모두 복사된 파일명으로 원래의 파일에 접근할 수 있다.

그리고, 두가지 방법 모두 파일이 실제로 새로 생성되는 것은 아니고, 물리적으로 같은 데이터(파일)를 가리킨다.

하드링크와 소프트링크는 차이점이 있다. 아래에서 살펴보자.


하드 링크

ln [복사할 파일명] [새로운 파일명]

list.txt 파일을 하드 링크한 파일 list_hard.txt가 생성된 것을 볼 수 있다.

 

하드 링크를 하면, 두 파일은 실제로 동일한 데이터를 가리키고 있다.

수정 시

따라서 list.txt를 수정하면, list_hard.txt에도 수정된 것이 적용된다.

또한, list_hard.txt를 수정해도 list.txt에도 수정된 것이 적용된다.

삭제 시

원본 파일 list.txt를 삭제해도, list_hard.txt는 삭제되지 않고, list_hard.txt의 데이터도 그대로 남아있다.

list.txt를 삭제하면, 원본 데이터를 list_hard.txt가 그대로 가리키고 있어서 데이터가 삭제되지 않는다.


소프트 링크

  • 소프트 링크 = 씸볼릭 링크
  • 윈도우의 바로가기와 동일하다.
ln -s [복사할 파일명] [새로운 파일명]

list.txt 파일을 소프트 링크한 파일 list_soft.txt가 생성된 것을 볼 수 있다.

 

소프트 링크 시 하드 링크와 다르게 원본파일 list.txt를 삭제하면 list_soft.txt의 데이터는 삭제된다.

(파일은 삭제되지 않음)


하드 링크와 소프트 링크의 차이

  • 맨 처음에 Original file은 Original data를 가리키고 있다.
  • Hard link 파일이 생성되면, 똑같이 Original data를 가리키게 된다.
  • Soft link 파일은 Original file을 가리키는 포인터를 가리키게 된다.

 

 

반응형
저작자표시 (새창열림)

'Computer Science' 카테고리의 다른 글

[CS] 메모리 계층과 저장 장치(RAM, Register,Cache, HDD)  (0) 2023.07.11
[CS/디지털논리회로] 덧셈기(adder), 반 가산기, 전 가산기  (0) 2023.07.11
[CS/디지털 논리 회로] 논리 게이트  (0) 2023.07.06
[ComputerScience / 디자인 패턴]싱글톤 패턴(singleton pattern)  (0) 2023.04.20
[프로그래밍 이론] 객체지향 4대 특성(캡슐화, 상속, 다형성, 추상화), 5 원칙(SOLID)  (0) 2023.04.20
'Computer Science' 카테고리의 다른 글
  • [CS] 메모리 계층과 저장 장치(RAM, Register,Cache, HDD)
  • [CS/디지털논리회로] 덧셈기(adder), 반 가산기, 전 가산기
  • [CS/디지털 논리 회로] 논리 게이트
  • [ComputerScience / 디자인 패턴]싱글톤 패턴(singleton pattern)
HSRyuuu
HSRyuuu
Web Server Developer hsryuuu
  • HSRyuuu
    HS_dev_log
    HSRyuuu
  • 전체
    오늘
    어제
  • 링크

    • Github
    • 전체 글 보기 (251)
      • Spring (37)
      • Infra & DevOps (20)
      • Java (25)
      • AI (8)
      • Database (28)
      • Web & Network (14)
      • 자료구조 & 알고리즘 (30)
      • Computer Science (24)
      • Frontend (17)
        • Vue.js & Nuxt.js (9)
        • JSP_Thymeleaf (7)
      • etc (48)
        • 오픈소스 라이브러리 (5)
        • 코딩테스트 (13)
        • Trouble Shooting (7)
        • Tech Interview (6)
        • Book Review (9)
        • 끄적끄적... (6)
        • 개인 프로젝트 (2)
  • 태그

    mybatis
    백엔드
    제로베이스
    백준
    Nuxt3
    백엔드기술면접
    클린코드
    JPA
    트랜잭션
    백엔드스쿨
    기술면접
    Java
    SQL
    cleancode
    리눅스
    Queue
    Redisson
    HTTP
    web
    Redis
    개발자
    SpringBoot
    자료구조
    백엔드공부
    TechInterview
    docker
    Database
    MySQL
    Spring
    Linux
  • 블로그 메뉴

    • 홈
    • 태그
  • hELLO· Designed By정상우.v4.10.4
HSRyuuu
[리눅스] 파일 복사, 하드 링크와 소프트 링크
상단으로

티스토리툴바