아래는 디렉토리의 심볼릭 링크를 만드는 코드입니다.
sudo ln -s /usr/local/nginx/conf/ /etc/nginx
나는 이미 디렉토리를 만들었습니다 /etc/nginx
. 소스 디렉토리 ( /usr/local/nginx/conf/
)의 내용이 대상 디렉토리 ( /etc/nginx
) 의 내용에 포함되기를 원합니다 . 그러나 코드를 실행하면 의 내용 대신 /etc/nginx
이라는 디렉토리가 포함 됩니다. 그 디렉토리에는 내가 원하는 내용이 있지만 잘못된 위치에 있습니다.conf
conf
디렉토리의 내용을 대상 폴더에 넣는 대신 대상 폴더에 디렉토리를 넣은 이유는 무엇입니까?
답변
이것은 ln
두 번째 arg가 디렉토리 인 경우 의 동작입니다 . 그 안에 첫 번째 인수에 대한 링크를 배치합니다 . 당신이 원하는 경우 /etc/nginx
심볼릭 링크로, 먼저 해당 디렉토리를 제거하고 동일한 명령을 실행해야합니다.
답변
즉 무엇 ln
대상이 이미 존재하고 디렉토리 때 어떻게 설명되어 있습니다. 당신이 원하는 경우에 /etc/nginx
할 수 심볼릭 링크가 아닌 포함 심볼릭 링크를 먼저 디렉토리로 만들 수 없습니다 더 나은했다!
답변
스크립트에서 다음과 같이 유용합니다.
if [ ! -d /etc/nginx ]; then ln -s /usr/local/nginx/conf/ /etc/nginx > /dev/null 2>&1; fi
스크립트를 다시 실행 한 후 “잘못된”루프 된 심볼릭 링크를 다시 만들기 전에 방지