cp 명령은 심볼릭 링크를 부분적으로 해결합니다.

cp 명령은 심볼릭 링크를 부분적으로 해결합니다.

외부 파일/디렉토리에 대한 심볼릭 링크는 확인되지만(대상 파일 복사) 내부 심볼릭 링크(복사 트리 내의 파일을 가리킴)는 유지되는 디렉토리를 반복적으로 복사하는 쉬운 방법이 있습니까?

예:

touch outsidefile
mkdir src
ln -s ../outsidefile src/sym1
touch src/insidefile
ln -s insidefile src/sym2
cp [???] src dest # or other command

원하는 결과:

$ ls dest
 insidefile
 sym1
 sym2 -> insidefile

sym1, 심볼릭 링크를 유지하는 일반 파일입니다 sym2.

답변1

rsync -a --copy-unsafe-links src/ dest

man페이지 에서 :

--안전하지 않은 링크 복사

이는 rsync에게 복사 트리 외부의 심볼릭 링크에 대한 참조를 복사하도록 지시합니다. --relative소스 경로 자체의 모든 심볼릭 링크와 마찬가지로 절대 심볼릭 링크도 사용 시 일반 파일로 처리됩니다 . 이 옵션도 지정 하면 --copy-links추가 효과가 없습니다.

[...]

--links --안전하지 않은 링크 복사 안전하지 않은 모든 심볼릭 링크를 파일로 변환하고 모든 안전한 심볼릭 링크를 복사합니다.

관련 정보