Linux 在bash中的单个sftp连接上传输多个文件
我想通过shell脚本在单个sftp连接上从一个文件夹传输多个文件,在这个文件夹中不断生成新文件 我采用了这个答案的方法,使用了Linux 在bash中的单个sftp连接上传输多个文件,linux,bash,shell,Linux,Bash,Shell,我想通过shell脚本在单个sftp连接上从一个文件夹传输多个文件,在这个文件夹中不断生成新文件 我采用了这个答案的方法,使用了herdocs,但失败了 类似下面的代码 sftp -P 8922 <server> <<EOF while [[ true ]] do listOfFiles=$(ls -1) if [[ ! -z $listOfFiles ]] then put * /somedir fi done EOF s
herdocs
,但失败了
类似下面的代码
sftp -P 8922 <server> <<EOF
while [[ true ]]
do
listOfFiles=$(ls -1)
if [[ ! -z $listOfFiles ]]
then
put * /somedir
fi
done
EOF
sftp-p8922sftp
不是shell,它不会执行这样的脚本
您需要执行一个脚本来打印所有的put
命令,并通过管道将其传输到sftp
for i in *
do
echo "put $i /somedir"
done | sftp -P 8922 <server>
中的i*
做
echo“放置$i/somedir”
完成| sftp-第8922页
sftp
不是shell,它不会执行这样的脚本
您需要执行一个脚本来打印所有的put
命令,并通过管道将其传输到sftp
for i in *
do
echo "put $i /somedir"
done | sftp -P 8922 <server>
中的i*
做
echo“放置$i/somedir”
完成| sftp-第8922页
你可以只做put*/somedir
,你不需要循环。你可以只做put*/somedir
,你不需要循环。