目前我有一个shell脚本,它会将远程路径中的所有.txt文件sftp转移到本地,并从远程路径中删除所有.txt文件。 但我需要更改逻辑,以便我需要删除从远程路径成功获取的文件而不是所有文件。 目前的代码:
sftp user@server << END_SCRIPT
cd /test
mget *.txt
rm *.txt
quit
END_SCRIPT
答案 0 :(得分:0)
您可以分两步完成:
# get the files
sftp user@server << END_SCRIPT
cd /test
mget *.txt
quit
END_SCRIPT
# remove the files
{
echo "cd /test"
# assuming that all files in the current dir are fetched through sftp
for file in *.txt; printf 'rm "%s"\n' "$file"; fi
quit
} | sftp user@server