현재 구축하고 있는 대규모 라이브러리에 대한 경로를 늘리기 위해 USB PENDRIVE를 사용하려고 합니다.
그래서 내 프로그램에서 Pendrive의 폴더에 대한 심볼릭 링크를 만드는 아이디어가 생겼습니다. 이렇게 하면 메인 스토리지 대신 펜 드라이브의 공간을 사용하게 됩니다.
/home/me/opencv/
<-- 제가 빌드하고 싶은 제품입니다.
/home/me/opencv/build/
<-- 빌드 폴더입니다.
이 시점에서는 이를 구축할 메모리가 부족하여 다음에서 이 심볼릭 링크를 만들었습니다./home/me/opencv/
mkdir /media/me/pendrive/opencv/build/
ln -s /media/me/pendrive/opencv/build/ /home/me/opencv/ -s
/home/me/opencv/
이로 인해 내 펜 드라이브를 가리키는 폴더 아래에 "빌드" 링크가 생성되었습니다.
여기서 문제는 디렉터리 탐색이 펜 드라이브도 가리킨다는 것입니다.
cd /home/me/opencv
ls
이것은 opencv 폴더 내의 많은 폴더와 파일을 렌더링합니다.
하지만 내가 이렇게 하면...
cd /home/me/opencv/build
ls ..
그러면 build라는 폴더가 하나만 있는 빈 opencv 폴더가 렌더링됩니다.
답변1
차이가 있다논리그리고물리적발생한 디렉터리 경로입니다.
cd /home/me/opencv/build
이렇게 하면 논리적 디렉터리에 들어가게 되지만 심볼릭 링크 덕분에 /home/me/opencv/build
실제로는 논리적 디렉터리에 있게 됩니다./media/me/pendrive/opencv/build
ls ..
당신에게 무엇을 보여줄 것인가물리적상위 디렉토리 /media/me/pendrive/opencv
.
실제 디렉토리 경로는 모든 기호 링크가 확인된 논리적 디렉토리 경로입니다. 논리 디렉토리 경로에 기호 링크 이상이 포함된 경우에는 동일합니다.
또한 pwd -L
해당 빌드 디렉터리와 while의 차이점을 확인하세요(그리고 매뉴얼도 읽어보세요).pwd -P
pwd
cd
-L
및 플래그 도 있습니다 -P
( -L
기본값임).
답변2
당신은 시도 할 수 있습니다제본사용할 수 있다고 가정하고 설치하십시오.스도아니면 루트 권한이 있어야 합니다. 예를 들어,
mkdir /home/me/opencv/build
mkdir -p /media/me/pendrive/opencv/build
sudo mount -o bind /home/me/opencv/build /media/me/pendrive/opencv/build
그런 다음 에 들어가면 의 내용이 /home/me/opencv/build
표시됩니다 . 설치를 취소 하는 데 사용됩니다 ...
/home/me/opencv/
sudo umount /home/me/opencv/build