Linux Symbolic Link

steveloper·2022년 9월 26일
0

ubuntu

목록 보기
1/6

회사에서 프로젝트를 진행하면서 storage 가 모두 차서 조치를 취해야하는 상황이 생겼다.
4년차 개발자이지만 지식이 별로 없고 체계적으로 배우지 않고 맨땅에 헤딩 느낌으로 업무를 해결해 나가다 보니 기본 상식같은게 없는 느낌이다...

여태까지 들어만 보고 알아보려 하지 않은 symbolic link 를 접하게 되었는데 새로운 지식을 습득한 느낌이라 신선했다.

내가 이해한 바로는 예를 들어서
두개의 디렉토리 A 와 B 가 있는데 서버에서 특정 파일이나 이미지를 저장할때
저장은 A 내부의 a 라는 폴더에 저장하도록 지정했으나 실제로 저장되는 경로는 B 의 a 가 되도록 지정하는 것이다.
즉, A/a 에 저장을 하도록 코드를 짜면 실제로는 B/a 에 저장되는 것이다.

코드는 하기와 같다.

//터미널에 입력
ln -s /B/a /A/a

ln 은 link 의 약어이고 -s 는 옵션으로 symbolic 을 의미한다.
형식은
ln -s 실제저장위치 저장위치를가리킬폴더
상기와 같이 코드를 입력하고
ls -l 을 통해서 디렉토리를 확인하면 하기의 그림처럼
a -> B/a 와 같이 링크된 것을 확인할 수 있다.
이제 A/a 에 저장되는 파일들은 모두 실제로는 B/a 에 저장되는 것이다.

해당 상황을 마주한 프로젝트에서의 문제점은 ln -s /B/a /A/a 와 같은 명령어를 입력했을때
symbolic link 로 지정할 폴더명이 이미 해당 디렉토리(A) 에 존재하고 있기 때문에 에러를 발생시켰다.
그래서 A/a 디렉토리의 모든 파일들을 B/a 로 mv 를 통해 모두 이동시킨뒤 symbolic link 를 통해 연결시켰다.

profile
JavaScript, Node.js, Express, React, React Native, GraphQL, Apollo, Prisma, MySQL

0개의 댓글