Answers:
如果使用的是标准命令行ftp客户端,则该MPUT
命令将允许您传输所有与(shell glob样式)模式匹配的文件,因此MPUT *
将发送当前目录中的所有文件。还MGET
可以检索与模式匹配的文件。
默认情况下,MPUT
和MGET
都会提示您是否先传输每个文件。您可能想要关闭“ PROMPT”命令的提示(无参数;这是一个切换)。
您可以使用ncftpput。请执行下列操作:
安装ncftp:
yum install ncftp
yum是小写的。
或者:
apt-get install ncftp
2.执行以下命令:
ncftpput -R -v -u "ftp-username" ftp.website.com ftp-upload-path local-path/*
使用FTP客户端,例如LeechFTP或FileZilla或类似的客户端。很多人都对CuteFTP发誓,但是我最后检查了它的共享软件。所有都支持传输包括目录结构在内的整个文件夹。
一个针对像我这样的其他Windows新手的简单教程,在这里出现:
上传整个文件夹(其中包含所有子文件夹和文件)的最简单方法是:
ncftpput -u * yourUserNameHere * -p * yourUserPasswordHere * -R * www.yourWebsite.com * / _C:\ yourFolderDirectoryHere \\ * _(作为一行)。
注意:
-R
是“递归”的标志;它使命令以递归方式复制所有子文件夹/
(斜杠)是您网站的根目录C:\yourFolderDirectoryHere\*
选择里面的所有东西 C:\yourFolderDirectoryHere
我将提供一个答案,尽管它纯粹是蛮力的,丝毫也不优雅,但它是在命令行上唯一对我有用的东西。我创建了文件列表,并将其放入脚本中:
生成文件列表:
find my-dir -exec echo "put /Users/username/"{} {} \;
将它们复制并粘贴到脚本中:
#!/bin/bash
hostname="my-ftp-host"
username="username"
password="password"
ftp -in $hostname <<EOF
quote USER $username
quote PASS $password
binary
cd 123456
{COPY THE LIST HERE}
quit
EOF
目标目录是一个zip文件。您可以使用以下代码将完整的zip文件复制到ftp服务器中。
//Taking source and target directory path
string sourceDir = FilePath + "Files\\" + dsCustomer.Tables[0].Rows[i][2].ToString() + "\\ConfigurationFile\\" + dsSystems.Tables[0].Rows[j][0].ToString() + "\\XmlFile";
string targetDir = FilePath + "Files\\Customers\\" + CustomerName + "\\" + SystemName + "\\";
foreach (var srcPath in Directory.GetFiles(sourceDir))
{
//Taking file name which is going to copy from the sourcefile
string result = System.IO.Path.GetFileName(srcPath);
//If that filename exists in the target path
if (File.Exists(targetDir + result))
{
//Copy file with a different name(appending "Con_" infront of the original filename)
System.IO.File.Copy(srcPath, targetDir + "Con_" + result);
}
//If not existing filename
else
{
//Just copy. Replace bit is false here. So there is no overwiting.
File.Copy(srcPath, srcPath.Replace(sourceDir, targetDir), false);
}
}
我的答案是@dgig答案的变体。
您可以列出所有文件并将它们(包括put命令)保存到文件中:
find my-dir -exec echo "put /Users/username/"{} {} > list.txt \;
然后使用sftp处理文件:
sftp -C -b sftpbatchfile.txt name@server
-C
用于压缩,-b
用于批处理文件
sftp
程序使用SFTP协议,这是一个不同的协议,尽管它有一些共同的字母。而且您没有编辑enter code here
剩余部分。