ln -sf source_file target_file
source_file이 존재하지 않아도 성공합니다.
ln -f source_file target_file
반면에 예상대로 실패했습니다.
첫 번째 경우 오류가 발생하도록 조정하는 방법아니요먼저 파일이 존재하는지 명시적으로 테스트합니다(즉, 존재하지 않습니다 [[ -e source_file ]] && ln -sf source_file target_file
).
답변1
ln
매뉴얼 페이지 에서 :
하드 링크를 생성할 때 각 TARGET이 존재해야 합니다.
거기에는 심볼릭 링크에 대한 언급이 없습니다. 실제로 이 진술은 심볼릭 링크의 경우에는 해당되지 않음을 암시하는 것 같습니다.
귀하의 질문에 대한 의견에서 말했듯이 존재하지 않는 소스에 대한 심볼릭 링크를 생성하면 끊어진 링크가 생성됩니다.
$ ln -sfv blah blabla
'blabla' -> 'blah'
$ file blabla
blabla: broken symbolic link to 'blah'
현재 ln
로서는 오류에 대해 불평할 이유가 없습니다. 심볼릭 링크를 요청하면 승인됩니다. 앨리어싱에 대한 두려움 때문에 ln
소스 파일이 존재하는지 명시적으로 확인하지 않고 원하는 작업을 수행할 수 있는 방법을 찾지 못했습니다.