使用 LFTP 如何将特定文件发送到服务器覆盖(如果存在)?

With LFTP How do I send a specific file to server overwriting if it exists?

我正在使用 expect 和 lftp 构建生产站点更新脚本。

我尝试了一段时间来做这件简单的事情:如果文件存在则发送覆盖文件。但是我就是找不到允许我覆盖目标位置的命令。 put -c 如果是同一个文件则继续。但如果不同,它什么也不做。

我真的必须检查文件是否存在并删除它才能将文件放入服务器吗?没有直接命令吗?

如果这是唯一的选择,那么还有一个我找不到的东西:查看文件是否存在的命令。我唯一的选择是处理 ls 的输出 ?

如果有另一个 ftp 客户端可以让我以更轻松的方式完成这些事情,我也会接受建议。

LFTP 为 put 提供了一个小写 e.

的参数

这允许您在上传文件之前删除文件,而不是覆盖选项(LFTP 似乎本身并不支持)。 prompt 之类的东西可能可用,但如果我们严格讨论 LFTP,我建议使用该选项,ala:

put -e file.txt

From the LFTP man pages.