내 파일을 복사하고 싶지만 심볼릭 링크를 하드 링크(예: 실제 파일)로 변환하고 싶습니다. 어떻게 해야 하나요?
내 코드는 다음과 같습니다(작동하지 않음).
cp -RL ${FROM_DIR} ${TO_DIR}
참고: 이는 Xcode 목적을 위한 것입니다. 빌드에서는 심볼릭 링크가 허용되지 않습니다.
감사해요!
편집하다:
문제는 파일을 먼저 제거하는 방식입니다. 기존 심볼릭 링크를 제거하는 것이 아닙니다.
rm -RLf "${FROM_DIR}/*"
답변1
UNIX cp
구현에 대해서는 잘 모르지만 GNU는 cp
기본적으로 심볼릭 링크를 유지하지 않습니다. 그리고 하드 링크는 파일과 다릅니다. 기본적으로 cp는 심볼릭 링크에서 파일/디렉토리를 생성합니다. 아마도 귀하의 목적에 -L 옵션이 필요하지 않을 것입니다. 이것이 정말로 필요한 경우 --no-preserve=links 옵션을 사용할 수 있습니다.
인용하다 man cp
:
--preserve[=ATTR_LIST]
preserve the specified attributes (default: mode,ownership,timestamps), if possible additional attributes: context, links, xattr, all
--no-preserve=ATTR_LIST
don't preserve the specified attributes