시스템 관리/리눅스

2-3. 리눅스 기본(파일 관련 명령어) ln(link)

코딩금융치료 2023. 7. 30. 20:00

1. symbolic link(심볼릭 링크)

  파일이나 디렉토리에 대한 가상의 링크를 생성하는 기능 

  원본 파일 또는 디렉토리를 가리키는 특별한 파일로서, 다른 파일이나 

  디렉토리에 대한 참조를 제공한다. (windows의 바로가기 아이콘과 비슷)

  원본을 다른 곳으로 이동시키면 사용 못함

  새로운 inode 생성

  원본자체를 가리키는 포인터 역할 뿐이므로, 원본 수정시 당연히 수정된 파일이 보임

  원본의 삭제시 링크가 끊김

  파일시스템이 달라도 관계 없음

# ln -s 원본파일 심볼릭링크파일

ex)

#  ln -s myfile.txt /home/test/myfile.txt

/home/kaga36 디렉토리의 myfile.txt 파일에 대한 심볼릭링크를 생성 하였다.

 

2. hard link(하드 링크)

  파일에 대한 다른 이름을 생성하는 기능

  동일한 파일 시스템 내에서만 작동하며, 원본파일과 같은 i-node를 공유한다.

  따라서 하드링크로 생성된 파일은 원본 파일과 동일한 데이터를 가지고 있으며, 원본 파일이나 하드 링크 중 어느 것을 

  사용해도 동일한 내용을 읽거나 쓸 수 있다.

  원본 수정시 하드링크도 수정됨

  원본 삭제시 살아 있음

  파일 복사와 차이는 공간을 차지하지 않는 것임 (copy 와 비슷한 개념)

# ln 원본파일 하드링크파일

 

ex) 

# ln myfile.txt hard_ln_myfile.txt

하드링크 생성 한 뒤 똑같은 inode의 파일이 생성 되었다.

 

※ copy와 서로 다른 점 

  1. 파일 위치 및 파일 시스템:
    • 카피: 파일을 다른 위치나 다른 파일 시스템으로 복사합니다.
    • 하드 링크: 하드 링크는 동일한 파일 시스템 내에서만 작동합니다. 원본 파일과 하드 링크 파일은 같은 i-node를 공유하고, 동일한 데이터를 참조합니다.
    • 심볼릭 링크: 심볼릭 링크는 원본 파일의 경로를 가리키는 가상의 파일로, 다른 파일 시스템과 다른 파일의 위치를 가리킬 수 있습니다.
  2. 삭제 시의 동작:
    • 카피: 카피한 파일은 원본 파일과 독립적으로 존재하며, 원본 파일이나 카피 파일 중 어느 하나를 삭제해도 다른 파일은 영향을 받지 않습니다.
    • 하드 링크: 원본 파일이나 하드 링크 중 어느 하나를 삭제해도 다른 파일은 영향을 받지 않습니다. 하드 링크로 생성된 파일들은 같은 i-node를 공유하기 때문에 같은 데이터를 가리키기 때문입니다.
    • 심볼릭 링크: 원본 파일을 삭제하면 심볼릭 링크는 끊어지게 됩니다. 원본 파일이나 심볼릭 링크 중 어느 하나를 삭제해도 다른 파일은 영향을 받지 않습니다.
  3. 유연성:
    • 카피: 원본 파일과 완전히 독립적인 복사본을 생성하므로 원본 파일과 독립적으로 사용할 수 있습니다.
    • 하드 링크: 원본 파일과 같은 i-node를 공유하므로 동일한 데이터를 참조합니다. 따라서 하드 링크로 생성된 파일들은 원본 파일의 변경 사항을 반영합니다.
    • 심볼릭 링크: 가상의 파일로 실제 데이터를 가지고 있지 않으므로 원본 파일과 독립적으로 동작합니다. 원본 파일의 변경 사항은 심볼릭 링크에 영향을 주지 않습니다.