如何从 Linux 命令检查 Windows 远程路径是否存在?

如何从 Linux 命令检查 Windows 远程路径是否存在?

我的 Jenkins 管道从 Linux 机器运行,我想'\\domain\parent\child\grand-child\通过 shell 脚本检查 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会失败或成功,具体取决于给定位置的可用性,并分别返回退出代码01。通过直接发出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

相关内容