Commend Line - link

정소원·2023년 5월 1일
0

Command Line

목록 보기
4/6

File - link

In

make links

  • 하드 링크 (hard link)
  • 심볼릭 링크 (symbolic link, symlink, -s)

용도

  • library 버전 관리
  • build 시 정적 빌드시 용량을 많이 차지함. 대신 동적 빌드 o

file은 파일 경로와 데이터로 구성되어 있다.

file의 데이터에 접근할 때,

i-node를 통해서 하드웨어에 저장된 실제 데이터를 접근한다.

파일 경로로 부터 i-node를 연결하는 기능이 필요하고 이를 hardlink라 한다.

따라서 File을 복제 하였을 때,

데이터가 복사되어 새로운 하드웨어 메모리를 차지하는 것이 아니라,

같은 i-node를 가리키는 hardlink가 추가로 생성되어 추가 메모리를 소요하지 않는다.

symlink는 완전히 다른 파일로, 단지 특정 파일의 경로를 가리키는 기능을 한다. (윈도우의 파일 및 폴더 바로가기 생성)

i-node (i-num)

파일의 메타 정보를 가지고 관리하는 객체

  • 시간 관련 정보, 사이즈, 소유권, 권한 … 등
  • 파일은 고유의 i-node를 1개 가지고 있다.
  • i-node는 disk partition(volume) 내에서만 유효한 식별자다.
  • 다른 disk에서 i-node는 의미 없는 번호
  • ln [original file][hardlink file]
  • same i-node를 가리키므로 동일(실체 파일과 하드링크파일이)ㅇ션파티티에내서에만 능가
  • regular file(일반 파일, 데이터 실체를 가진 파일)에만 생성이 가능함.
  • unregular file (directory, device file) 등은 생성이 불가능함
  • ln -s [original file][symlink file]
  • ln -sr hello.txt ../symhello.txt
  • 기능: 위치(path)만 가리키므로 다른 파티션, 모든 종류의 file에 생성
  • 권한: 777, 의미는 없다
  • bronken error방지
    • symlink 생성시 [original file]의 경로를 입력한 그대로 연결하기 때문에, symlink 폴더 위치로 이동해서 symlink 폴더 위치를 기준으로 [original file] 경로를 지정해주어야 한다.

readlink [-fe]

symlink의 canonical path 식별

  • symlink → symlink → … → symlink → hardlink
    • readlink -f : 마지막 링크를 제외하고
    • readlink -e : 전체 링크

개념 - canonical

canonical : 실체화, 실체를 가지는 standard, official의 의미를 가짐

../../와 같은 상대 주소는 cwd에 따라 가르키는 위치가 달라짐

. (현재 디렉토리, cwd)가 정의되면 cwd를 기준으로 ../../를 official한 값으로 해석할 수 있다.

(A의) 옆집과 같이 A나 B가 정해져야만 official한 의미가 되는 경우, 상대적인 의미를 해석한 뒤 standard, official의 대상을 한정하는 행위를 canonicalization이라고 표현한다.

symlink는 실체를 가리키는게 아니기 때문에 따라가기 전에는 대상을 한정할 수 없다. 그러므로 순차적으로 따라가야 canonical path를 알 수 있게 된다.

which

which [commend]

  • PATH에 존재하는 파일을 검색
  • 명령어가 어디있는지 알야 할 때 사용
profile
성장지향형 자율주행 소프트웨어 개발자입니다. K-Digital-Training: 자율주행 데브코스 Planning & Control 1기로 활동하고 있습니다. 본 블로그를 통해 배움기록을 실천하고 있습니다. #자율주행 #기계공학

0개의 댓글