首页 > 解决方案 > 使用 LFTP 如果存在,我如何将特定文件发送到服务器覆盖?

问题描述

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

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

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

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

如果有另一个 ftp 客户端允许我以更简单的方式完成这些事情,我也会接受建议。

标签: lftp

解决方案


LFTP 提供了put一个小写的参数e

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

put -e file.txt

来自 LFTP 手册页。


推荐阅读