我有几个文件名为:
TEST_YYYYMMDD.txt
我需要通过ftp
上传,以便获取我运行的文件列表:
files=($(ls | grep -i -E 'TEST_[0-9]{8}.txt'))
现在我收到了文件列表,我怎么能通过put
ftp
这些?
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.$$
}
答案 0 :(得分: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