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

관련 정보