在远程中获取文件和删除的脚本

时间:2018-04-03 00:52:46

标签: shell ssh sftp

目前我有一个shell脚本,它会将远程路径中的所有.txt文件sftp转移到本地,并从远程路径中删除所有.txt文件。 但我需要更改逻辑,以便我需要删除从远程路径成功获取的文件而不是所有文件。 目前的代码:

sftp user@server << END_SCRIPT

cd /test
mget *.txt
rm *.txt 
quit

END_SCRIPT 

1 个答案:

答案 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