심볼릭 링크가 없는 Unix Copy(cp)

심볼릭 링크가 없는 Unix Copy(cp)

내 파일을 복사하고 싶지만 심볼릭 링크를 하드 링크(예: 실제 파일)로 변환하고 싶습니다. 어떻게 해야 하나요?

내 코드는 다음과 같습니다(작동하지 않음).

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

관련 정보