
문맥:
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]
출력에 총 할당된 공간 번호가 포함됩니다.
그래서 당신은 가질 수 있습니다단순한또는가지고 다닐 수 있는.