0

我在 Windows 中有这个命令:

exec('copy /V "'.$file.'" "'.$dest.'"');

其中 $file 是 Windows 驱动器中的远程文件,格式如下:

\\服务器\dr1$\文件夹\文件
\\服务器\dr2$\文件夹\文件
\\服务器\dr0$\文件夹\文件
\\服务器\dr1$\文件夹\文件2
\\服务器\dr1$\文件夹\文件1

等等。目的地是服务器中的本地文件。请注意,驱动器一直在变化,并且事先不知道(它们来自数据库结果)。在 Windows 中一切正常,执行的命令将是这样的(/V 是为了验证文件是否被正确复制):

复制 /V \\server\dr1$\folder\file c:\users\test\file

但是,当我尝试时,我不知道如何在 Linux 中运行它

cp \\server\dr1$\folder\file /home/test/file

我得到:

cp: cannot stat '\\server\dr1$\folder\file': 没有这样的文件或目录。

谢谢,

纳米。

4

2 回答 2

0

您可以使用 PHP 来执行smbclient命令。Smbclient 的行为与 FTP 非常相似,有几个类可以在 PHP 方面为您提供帮助。

或者,您可以通过 FUSE 在用户空间中挂载文件系统(查看https://serverfault.com/search?q=fuse+cifs),复制文件并再次卸载驱动器。

于 2011-03-21T22:18:27.987 回答
0

您需要使用 Samba/CIFS 安装驱动器,然后再复制到驱动器。

这看起来像:

mount -t cifs //servername/sharename ./mountpoint/
cp ./mntpoint/folder/file /home/test/file

有很多关于此的文档。尝试谷歌搜索 smbclient 或 cifs。

于 2011-03-21T22:06:38.820 回答