LinuxコマンドでWindowsリモートパスが存在するかどうかを確認するには?

LinuxコマンドでWindowsリモートパスが存在するかどうかを確認するには?

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

関連情報