2012-05-04 111 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