2012-05-04 113 views

回答

9

你可以把你的文件列表到FTP命令列表很轻松地:

(echo open hostname.host; 
echo user username; 
cat filelist | awk '{ print "put " $1; }'; 
echo bye) > script.ftp 

然后,你可以运行:

ftp -s script.ftp

或可能(ftp使用的其他版本)

ftp -n < script.ftp

+0

FTP:S:未知的选项 –

+1

@PierredeLESPINAY FTP实现取决于平台上,尝试'FTP Benj

2

东西沿着这些路线 - 在somecommand取决于你想做的事 - 我不明白的是从你的问题,对不起。

#!/bin/bash 
# Iterate through lines in file 
for line in `cat file.txt`;do 
#your ftp command here do something  
somecommand $line 
done 

编辑:如果你真的想persue多个文件这条路线(你不应该!),你可以在使用地点somecommand $line以下命令:

ncftpput -m -u username -p password ftp.server.com /remote/folder $line 

ncftpput propably也需要任意数量的文件一次上传,但我没有检查它。请注意,这种方法将连接并断开每个文件!

+0

该命令是“通过FTP复制文件” –

+0

最好的解决方案是然后一个ftp脚本。 Benj的回答就是一个例子。 – jkgeyti

+0

显然不符合我的Debian的FTP客户端 –

2

感谢您提供如何将文件列表提供给ftp的非常有用的示例。这对我来说非常合适。

在Linux的版本(CentOS 5.5)创建我的FTP脚本后,我跑了剧本:

ftp –n < ../script.ftp 

我的脚本(其名称更改为保护无辜者)开头:

open <ftpsite> 
user <userid> <passwd> 
cd <remote directory> 
bin 
prompt 
get <file1> 
get <file2> 

并以:

get <filen-1> 
get <filen> 
bye