从文件中复制文件列表

时间:2012-05-04 08:34:19

标签: bash shell ftp

我的文件包含由行尾分隔的文件列表

$ cat file_list
file1
file2
file3

我想用FTP

复制这个文件列表

我该怎么做?我必须写一个脚本吗?

3 个答案:

答案 0 :(得分: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

答案 1 :(得分: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

编辑:如果你真的想要为多个文件设置此路由(你不应该!),你可以使用以下命令代替somecommand $line

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

ncftpput也可以一次性上传任意数量的文件,但我没有检查过。请注意,此方法将为每个文件连接和断开连接!

答案 2 :(得分: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