【发布时间】: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.$$
}
【问题讨论】: