경로에 심볼릭 링크를 만들 수 있는지 확인하는 방법은 무엇입니까?

경로에 심볼릭 링크를 만들 수 있는지 확인하는 방법은 무엇입니까?

문맥:

Windows 호스트의 공유 폴더가 있는 Ubuntu Virtualbox VM. 상인: 셰프 솔로

/tmp/shared_data경로가 있고 그 경로에 다음과 같이 심볼릭 링크를 생성하려고 한다고 가정해 보겠습니다.

ln -s /var/www /tmp/shared_data/web_root

프로토콜 오류라고 표시되지 않습니다.

"bash" "/tmp/chef-script20161020-6826-kore5t" 출력 시작----

==> dev:     STDOUT:
==> dev:     STDERR: ln: failed to create symbolic link ‘/tmp/shared_data/web_root’: Protocol error
==> dev:     ---- End output of "bash"  "/tmp/chef-script20161020-6826-kore5t" ----
==> dev:     Ran "bash"  "/tmp/chef-script20161020-6826-kore5t" returned 1

이는 내가 심볼릭 링크를 만들려는 경로가 Windows FS이고 이를 지원하지 않기 때문이라고 생각합니다.

시도하기 전에 경로에 심볼릭 링크가 생성되어 빌드가 손상될 수 있는지 감지할 수 있는 방법이 있습니까?

답변1

할 수 있다출력을 구문 분석 mount하고 경로의 파일 시스템 유형을 결정합니다. 이는 가장 이식성이 높지만 번거롭습니다(하위 디렉터리가 아닌 마운트 지점에 대한 직접적인 정보만 제공하기 때문입니다). 그러나 일부 시스템별 방법은 다음에서 사용할 수 있습니다.

이것이 아닌지 확인하고 싶을 수도 있습니다.cifs파일 시스템. 예를 들어 다음과 같이 할 수 있습니다.

if df -t cifs /tmp/shared_data/web_root 2>/dev/null
then
    echo cannot make a symbolic link...
else
    ln -s /var/www /tmp/shared_data/web_root
fi 

매뉴얼 페이지우분투df설명하다 -t:

-t, --type=유형
파일 시스템 목록을 이 유형으로 제한하십시오.유형

이것은 다르다POSIX df:

-t
[XSI]출력에 총 할당된 공간 번호가 포함됩니다.

그래서 당신은 가질 수 있습니다단순한또는가지고 다닐 수 있는.

관련 정보