심볼릭 링크/외부 파일을 통해 파일을 복사하는 방법은 무엇입니까? (목적지)[중복]

심볼릭 링크/외부 파일을 통해 파일을 복사하는 방법은 무엇입니까? (목적지)[중복]

다음과 같은 파일 시스템이 있다고 가정해 보겠습니다.

/home/me/dir1/dir2/dir3/dir4/dir5/dir6/file1

그런 다음 /home/me/dir1심볼릭 링크를 만듭니다.

$ cd /home/me/dir1
$ ln -s /home/me/dir1/dir2/dir3/dir4/dir5/dir6 linkdir6

file1을 내 홈 디렉토리에 복사하려고 합니다(이것은 단순화된 예이며 그보다 더 복잡합니다. "/home/me/"는 실제로 더 복잡한 디렉토리 구조이므로 "~/"는 해결책이 아닙니다).

$ cd linkdir6
$ cp file1 ../
$ cd ..
$ ls
dir2 linkdir6

file1이 보이지 않습니다. 검색하다가 발견했어요/home/me/dir1/dir2/dir3/dir4/dir5/file1

cp그것이 기호 디렉토리에 있다는 것을 깨닫지 못하는 것 같습니다 .

내가 어떻게 할cp 밖의기호 폴더?

또는 참조를 역참조해야 한다는 것을 어떻게 cp이해 합니까(여기서../목적지매뉴얼 페이지에서 참조됨)?

내가 뭐 놓친 거 없니? 가능합니까?

감사해요!

(마지막 참고 사항 - 실제 사용 사례는 전체 경로를 입력하지 않고 ../another-symlink-directory/ 파일을 복사하려고 시도하는 심볼릭 링크 디렉터리 내의 깊은 디렉터리 구조에 있습니다. 이는 제가 관심을 갖는 심볼릭 링크에 대한 요점 중 하나입니다. 에 대한 )

답변1

실제로 를 클릭했습니다 cd linkdir6. 실제로 해당 디렉터리에 있으므로 ../는 그보다 한 수준 높은 dir5에 있습니다.

cp를 사용하는 가장 안전한 방법은 대상 디렉터리에 있는 것입니다. 그런 다음 링크를 사용하여 소스 파일을 가져옵니다.

cd ~/me/dir1  #.. Target
cp linkdir6/file1 .

개인적으로 나는 cp에서 -t(target) 옵션을 선호합니다.

cp -t ~/me/dir1 dir1/linkdir6/file1

답변2

$ cp file1 "$(cd .. && pwd -P)"

바라보다이 답변.

관련 정보