【问题标题】:Upload files from a list via ftp in bash在 bash 中通过 ftp 从列表中上传文件
【发布时间】:2017-10-16 13:56:20
【问题描述】:

我有几个这样命名的文件:

TEST_YYYYMMDD.txt

我需要通过ftp上传它们,以便获取我运行的文件列表:

files=($(ls | grep -i -E 'TEST_[0-9]{8}.txt'))

现在我得到了文件列表,如何通过ftpput他们?

function upload() {
list="$1"
length=${#list[*]}
for ((i=0;i<=$(($length - 1)); i++))
do 
 ftp -n host << EOF
 quote USER user
 quote PASS password
 prompt
 put ${list[$i]}
 quit
 EOF
done
}

这将为每个文件打开一个连接。
谁能给我一个更好的实现?

mput我不知道怎么用。 .TEST_* 因为通配符对我来说不安全。

谢谢


我是如何解决的

function upload() { 
list="$1" 
$user="username"
$password="password"
length=${#list[*]}
echo "open host user $user $password 
 binary 
 cd folder" > tmp/ftp.$$
 for ((i=0;i<=$(($length- 1)); i++))
 do 
echo "put ${list[$i]}" >> tmp/ftp.$$ 
done
echo "quit" >> tmp/ftp.$$
 ftp -ivn < tmp/ftp.$$ 
rm /tmp/ftp.$$ 
}

【问题讨论】:

    标签: bash ftp upload


    【解决方案1】:

    仅循环 put 命令。

    (
     echo quote USER user
     echo quote PASS password
     echo prompt
     for ((i=0;i<=$(($length - 1)); i++))
     do
      echo put ${list[$i]}
     done
     echo quit
    ) | ftp -n host
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-29
      • 1970-01-01
      • 1970-01-01
      • 2012-04-26
      • 2013-03-24
      • 2011-12-05
      • 2011-06-11
      相关资源
      最近更新 更多