본문 바로가기

논문 및 데이터 분석

[Linux] 하드 링크 vs 소프트 링크

하드 링크 (Hard Link)

  • 동일한 데이터를 가리킨다. (동일한 데이터를 공유한다.)
  • 특징 :
    • 원본을 수정하면, 링크한 파일도 수정된다.
    • 마찬가지로, 링크한 파일 수정하면, 원본에도 수정된다.
    • 원본을 삭제하더라도, 링크한 파일은 그대로 존재한다! 데이터까지 모두 존재한다.
    • 링크한 파일은 삭제해보려 하더라도 삭제되지 않는다. 원본이 존재하기에! 
ln {복사해올 파일/파일 경로} {새로 저장(링크)할 폴더명}
ln file1.txt hardlink_file.txt

소프트 링크 (Soft Link) = 씸볼릭 링크 (Symbolic Link)

  • 바로가기처럼 작동한다. (중간 링크를 생성한다.)
  • 특징 : 
    • 원본을 수정하면, 링크를 통해 링크한 파일에서 확인할 수 있다.
    • 링크한 파일에서는, 원본 파일에 접근하여 수정 가능하다. ( 소프트 링크 자체는 단순히 원본 파일의 경로를 저장하기 때문이다.)
    • 원본을 삭제하면, 링크는 깨진 상태(broken link)가 된다. (파일은 삭제되지 않음. 즉, 파일이 존재하긴 하나, 내용인 원본 데이터가 없음)
    • 링크한 파일은 삭제해도, 원본에 영향이 없다. (링크/경로만 삭제된 셈)

링크 생성하기

ln -s {복사해올 파일/폴더 경로} {새로 저장(링크)할 폴더명}
ln -s file1.txt hardlink_file.txt
ln -s /data/PUBLIC_DATA/scRNA/data1/1f2a94d9-3cbd-4250-8857-7099173d59c7/SRR11606924_1.fastq.gz SRR116069__

 

+) 현재 내 디렉토리 (파란색 부분인 /data/project/kim89) 에 존재하는 폴더 명(ex.SRR116069__)을 입력해주면 된다.

Symbolic Link 된 파일


 

링크 수정하기

ln -Tfs {수정 경로} {링크한 파일/폴더명}

링크 삭제하기

rm {삭제할 링크한 파일/폴더명}


 

 

< 정리 >

Symbolic Link는 먼저, Symbolic Link content contanin path를 가르키고 (포인터 역할), 이것이 또 File1을 가르키는 셈이다.

Hard Link는 직접 File1의 Content를 가르킨다.

동일한 내용 다른 그림을 또 참조해보자면,

Symbolic Link는 Pointer를 거쳐간다.


Original File 삭제를 생각해보면, Hard Link는 여전히 Data를 가르키고, Symbolic Link는 Pointer가 가르키는 것이 없어 Data를 확인할 수 없다.


+) 파일 읽기 테스트 : 결과가 나오면, 링크가 잘 형성되어 데이터가 잘 읽히는 것이다

head -n 10 {링크한 파일)
head -n 10 /data/project/kim89/SRR116069__/SRR11606920_1.fastq.gz

 

+) 링크한 파일 이름 변경하기 ; 원본 파일 명에는 아무런 영향을 주지 않는다!

mv {링크한 파일명} {링크한 파일 수정명}
mv /data/project/kim89/SRR116069__/SRR11606920_1.fastq.gz /data/project/kim89/SRR116069__/SRR11606920_S1_L001_R1_001.fastq.gz
mv /data/project/kim89/SRR116069__/SRR11606920_2.fastq.gz /data/project/kim89/SRR116069__/SRR11606920_S1_L001_R2_001.fastq.gz

'논문 및 데이터 분석' 카테고리의 다른 글

[Scanpy] 설치 및 실행  (1) 2024.12.14
conda 가상환경 생성 및 R 실행  (3) 2024.11.28
Batch Effect, Batch Correction  (0) 2024.11.21
RNA 데이터 생성 과정  (0) 2024.11.20
Cell Ranger 설치 및 실행  (2) 2024.11.07