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



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

一段时间以来,我一直在尝试做一件简单的事情:发送一个覆盖文件(如果存在的话(。但我就是找不到允许我在输入时覆盖目的地的命令。如果是同一个文件,则put-c继续。但是,如果它不同,它什么都不会做。

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

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

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

LFTP为put提供了一个参数,它是小写的e

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

put -e file.txt

来自LFTP手册页。

最新更新