В простом случае, таком как этот, вы можете использовать scp
instad из sftp
и указать файлы для копирования в командной строке:
scp $localpath/* username@10.42.255.209:/$remotepath/
Но если вы предпочитаете выдаватьКоманды sftp, затем sftp может читать команды из своего стандартного ввода, так что вы можете сделать:
echo "put $localpath/* $remotepath" | sftp username@10.42.255.209
Или вы можете использовать здесь документ для передачи данных как stdin в sftp, что может бытьпроще, если вы хотите запустить несколько команд sftp:
sftp username@10.42.255.209 << EOF
put $localpath/fileA $remotepath/
put $localpath/fileB $remotepath/
EOF
Наконец, вы можете поместить команды sftp в отдельный файл, скажем sftp_commands.txt
, и заставить sftp выполнять эти команды, используя свой флаг -b
:
sftp -b ./sftp_commands.txt username@10.42.255.209