使用命令行通过 Samba 发送文件

t0x*_*xic 24 command-line scp samba file-transfer

我想知道是否有办法使用 Samba 通过命令行将项目发送到客户端计算机(我需要从 Samba 服务器发送文件)。我知道我总是可以使用,scp但首先我想知道是否有办法用 Samba 做到这一点。谢谢!

War*_*ung 24

使用smbclientSamba 自带的程序:

$ smbclient //server/share -c 'cd c:/remote/path ; put local-file'
Run Code Online (Sandbox Code Playgroud)

有很多标志,例如 -U允许远程用户名与本地用户名不同。

在将 Samba 拆分为多个二进制包的系统上,您可能已经安装了 Samba 服务器,但仍然缺少smbclient。在这种情况下,请检查你的包库名为包smbclientsamba-client或类似的。

  • 你将如何`放置`一个不在当前目录中的`local-file`? (2认同)

ead*_*ter 23

curl从 v7.40 开始支持smb协议: curl --upload-file /path/to/file.ext -u 'DOMAIN\Username' smb://172.16.17.52/ShareName/


小智 5

真正有效的将是这样的:

$ smbclient //server/share -c 'cd c:/remote/path ; put local-file remote-file'

local-file - 来自本地计算机的文件

远程文件 - 复制到远程计算机上的此文件


LoM*_*aPh 5

我发现最简单的方法是使用smbget

smbget smb://PATH/TO/FILE/test.txt
Run Code Online (Sandbox Code Playgroud)

如果需要认证(如果没有提供密码,会提示输入密码):

smbget smb://PATH/TO/FILE/test.txt -U "john@example.com%myPassword"
Run Code Online (Sandbox Code Playgroud)

您还可以指定文件的保存位置以及复制后的文件名:

smbget smb://PATH/TO/FILE/test.txt -U "john@example.com%myPassword" -o /LINUX/PATH/remote_test_file
Run Code Online (Sandbox Code Playgroud)