가능하면 하드 링크를 만들고, 그렇지 않으면 심볼릭 링크를 사용하세요.

가능하면 하드 링크를 만들고, 그렇지 않으면 심볼릭 링크를 사용하세요.

dotfiles내 저장소에서 내 홈 폴더로 의 파일 링크를 생성하는 쉘 스크립트를 작성하려고 합니다 .

로 이동할 때 가능하면 하드 링크를 사용하고 싶습니다 HOME.

하지만 다른 파일 시스템에 복제하려면 dotfiles심볼릭 링크를 사용해야 합니다.


그렇다면 가능하다면 어떻게 파일에 대한 하드 링크를 만들 수 있습니까? 아니면 쉘 스크립트에서 심볼릭 링크를 사용할 수 있습니까?

답변1

ln source target 2>/dev/null || ln -s source target 2>/dev/null || exit 1

또는 약간 더 "상호작용적"(더 대화적),

if ! ln source target 2>/dev/null; then
    echo 'failed to create hard link, trying symbolic link instead' >&2
    if ! ln -s source target 2>/dev/null; then
        echo 'that failed too, bailing out' >&2
        exit 1
    fi
fi

/dev/null표시된 오류 메시지 ln(있는 경우) 를 보려면 리디렉션을 제거하세요 .

관련 정보