'\\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