'\\domain\parent\child\grand-child\
내 Jenkins 파이프라인은 Linux 시스템에서 실행되고 있으며 쉘 스크립트를 통해 Windows 공유 경로(예: - )가 존재하는지 확인 하고 싶습니다 .
Windows 시스템에서도 실행 중인 경우 다음이 도움이 될 것입니다.
if exist <windows-shared-path> echo "Path present"
Linux 시스템에 Windows 공유 경로가 있는 경우 이를 달성하기 위해 Linux 명령을 공유할 수 있습니까?
답변1
다음과 같이 사용할 수 있습니다 smbclient
.
smbclient -U'<domain>\<user>%<password>' '\\server\path\to\dir' -c exit && echo exists || echo does not exist
smbclient
해당 위치의 가용성에 따라 실패하거나 성공하고 각각 종료 코드 또는 0
를 반환합니다 1
. 명령을 직접 실행하면 exit
공유 자체에 대해서는 아무 작업도 수행되지 않습니다.
답변2
@FelixJN 답변이 저에게 작동하지 않았습니다. smbclient
연결 \\server\path\to\dir
이 적어도 존재하더라도 \\server\path
항상 성공하지는 않습니다. 즉, 이것에서 영감을 얻었습니다. 오류가 발생했기 때문에 추가로 사용하고 else로 멋지게 대체했으며 옵션도 있습니다. 탈출:\\server\path\to\dir
\\server\path
-D
\
/
tree connect failed: NT_STATUS_BAD_NETWORK_NAME
\
-U
smbclient -U'<domain>\\<user>%<password>' '//server/path/' -D 'to/dir' -c exit && echo exists || echo does not exist