런타임(다른 Linux 우분투 버전):
>ln -s dir_1 symlink_dir
>ln -s dir_2 symlink_dir
실패했다고 말하지 않고 실패합니다. 그러나 파일에 대해 동일한 작업을 수행하거나 옵션에 v를 추가하면 실패했다는 메시지가 표시됩니다.
>ln -s file_1 symlinkg_file
>ln -s file_2 symlinkg_file
또는
>ln -sv dir_1 symlink_dir
>ln -sv dir_2 symlink_dir
오류 메시지와 함께 실패합니다.
ln: failed to create symbolic link
이것은 나에게 매우 이상한 행동처럼 보입니까? 이유가 있나요?
답변1
두 번째 프로세스에서는 ln
실패하지 않기 때문에
symlink_dir/dir_2 -> dir_2
심볼릭 링크
어떤 것을 만들어:
ls -l symlink_dir/dir_2
거기에 (아마도 깨진) 심볼릭 링크가 보일 것입니다.
ln
이는 대상이 디렉토리(또는 디렉토리에 대한 심볼릭 링크)인 경우 작동하는 방식입니다.
세 번째 작업은 이미 내부 작업 (일명 )이 ln
있기 때문에 실패할 수 있습니다 .dir_2
symlink_dir
dir_2
답변2
원하는 경우 두 번째 명령이 실패 -n
하도록 지정합니다.ln
$ ln -ns realdir symdir
$ ln -ns realdir symdir
ln: creating symbolic link `symdir' to `realdir': File exists
물론 이는 -v
결과와는 아무런 관련이 없습니다.
답변3
옵션을 통해 무슨 일이 일어나고 있는지 확인하고 ln
원하는 동작을 구현할 수 있습니다. 다음 별칭을 사용하세요 ln
.
alias ln='\ln -vsn'
ln
옵션:
-v, --verbose
print name of each linked file
-s, --symbolic
make symbolic links instead of hard links
-n, --no-dereference
treat destination that is a symlink to a directory as if it were a normal file