You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

SFTP脚本中rm命令遇不存在文件时的处理方式及-f参数作用咨询

SFTP脚本中rm命令遇不存在文件时的处理方式及-f参数作用咨询

嗨,我来帮你理清这个问题~

首先看你的脚本风格,应该是用的WinSCP的SFTP脚本吧?先针对这个场景给你说清楚:

  • 默认无-f参数的情况:如果某个文件(比如你说的file2.edi)不存在,执行rm file2.edi时脚本会直接报错终止,后面的删除命令和上传Put命令都没法继续执行了。
  • 添加-f参数后的情况:加上-f(强制删除)参数后,哪怕目标文件不存在,rm命令也不会抛出错误中断脚本,它会默默跳过这个不存在的文件,继续执行后续的rm命令,直到完成所有删除操作,再正常执行后面的Put上传步骤。

举个你的脚本例子:如果file2.edi不存在,rm file2.edi -f这一行不会触发错误,脚本会接着执行rm file3.edi -frm file4.edi -f,然后顺利进入to_ar目录完成四个文件的上传。

另外补充一句:如果是用OpenSSH的sftp客户端,-f参数的作用是一样的,只是语法顺序是rm -f file2.edi,同样能实现忽略不存在文件、不中断脚本的效果,大多数主流SFTP客户端的rm -f逻辑都遵循这个规则。

备注:内容来源于stack exchange,提问作者JSS

火山引擎 最新活动