을 덮어 쓸 수 없습니다. 난 항상 sudo rm new_dir
을 할 수내가 심볼릭 링크를 생성 한 심볼릭 링크 레드햇을 리눅스
sudo ln -f -s /other/dir new_dir
을, 그러나 나는 오히려 그에 따라 가능하면 덮어 쓸 것이다 : 나는 노력했다. 어떤 아이디어?
을 덮어 쓸 수 없습니다. 난 항상 sudo rm new_dir
을 할 수내가 심볼릭 링크를 생성 한 심볼릭 링크 레드햇을 리눅스
sudo ln -f -s /other/dir new_dir
을, 그러나 나는 오히려 그에 따라 가능하면 덮어 쓸 것이다 : 나는 노력했다. 어떤 아이디어?
ln -sfn /other/dir new_dir
이 맞습니다. -n
은 대상 심볼릭 링크를 역 참조하지 않습니다.
당신은 그것을 만든 다음 그것을 이동할 수 있습니다
sudo ln -f -s /other/dir __new_dir
sudo mv -Tf __new_dir new_dir
편집 : -tf 누락, 일반 파일로 디렉토리를 치료하고 덮어 쓰기를 묻는 메시지가 표시되지 않습니다.
이렇게하면 덮어 쓰게됩니다.
mikeytown2s 주석에서 링크가 파손되기 때문에 redent84s answer 더 나은 이유, 내가 설명 할 것입니다 :
ln -sfn newDir currentDir
이 일을
동안 당신이 볼 수있는대로, 원자 조작 아니라, 을 strace 포함 :
$ strace ln -snf newDir currentDir 2>&1 | grep link
unlink("currentDir") = 0
symlink("newDir", "currentDir") = 0
해당 심볼릭 링크를 가리키는 웹 서버 루트가있을 때 중요합니다. 심볼릭 링크가 삭제되고 다시 생성되는 동안 오류가 발생할 수 있습니다 (심지어 마이크로 초의 시간 경과).
방지하려면 오류 대신 사용
$ ln -s newDir tmpCurrentDir && mv -Tf tmpCurrentDir currentDir
이 임시 링크를 만들고 해당 후 원자 조작에 currentDir 을 덮어 쓰게됩니다.
좋은 지적. 맨 페이지에서 :'-h target_file 또는 target_dir이 심볼릭 링크 인 경우, 그것을 따르지 마십시오. 이것은 -f 옵션과 함께 디렉토리를 가리킬 수있는 심볼릭 링크를 대체하는 데 가장 유용합니다.' – redent84
'-n'은'-h'와 같습니다 (적어도 MacOS X에서는) – redent84