我login在服务器上(使用腻子)。 从那里我连接使用FTP到另一台服务器。 我想使用mput将第一台服务器上的多个文件夹复制到第二台服务器上。
喜欢:
ftp> mput folder1 folder2 folder3
但我得到“folder1:不是一个纯文件”…等等。 这些文件夹中的每一个都有子文件夹,文件(一些二进制文件,一些不)。
我怎样才能完成我想要的东西,而不是压缩的东西,然后转移?
命令行FTP是相当原始的。
您不能recursion地向远程站点发送文件/文件夹。
如果你想重新创build远程方面的目录结构,就像本地一样,你需要手动mkdir每个path,并使用mput *将该目录中的所有内容发送到远程端。
两个选项使这更容易:
停止使用原始的FTP命令(ncftp是一个很好的select)
使用tar来查找文件夹,发送文件并提取远端。
我做了一个bash脚本:
#!/bin/bash ftp_site=ftp.yoursite.net username=my_user_name passwd=my_password remote=/path/to/remote/folder folder=$1 cd /path/to/local/folder/$folder pwd ftp -in <<EOF open $ftp_site user $username $passwd mkdir $remote/$folder cd $remote/$folder mput * close bye
并用它来呼叫
find . -type d -exec ./recursive-ftp.sh {} \;
似乎工作。
这是普通的ftp程序不可能的,因为mput不使用recursion。 你可以使用ncftp,然后调用“mput -r文件夹”。
祝福,Fabian
Secure Copy scp具有-rrecursion标志,您可能会觉得有用。
打开powershell cd到要上传的目录,运行以下命令:
1. gci -r | % {if ($_.PSIsContainer) {$t = $((($_.fullname -split "\\")[$(((pwd) -split "\\").length)..200]) -join "/"); "mkdir ""$t""`r`nmput ""$t/*"" ""$t"""}} | sc .\mput_all 2. notepad .\mput_all
将结果粘贴到您的ftp窗口中。 请享用。 另外不要忘记添加mput *来传输基本目录中的所有文件。