使用SFTP删除远程文件的一部分



我想使用SFTP协议删除文件的一部分。例子:

This is a sample text.—>This is a text.

标准协议写操作接受一个偏移量和一串数据作为输入。但是,接口没有指定可能从文件中删除字符的文件长度。这样,文件的大小就只能增长了。在上面的例子中,如果我尝试使用write来更新文件,结果输出将是:

This is a text.e text.

在SFTP中删除字符的正确方法是什么?当使用write时,是否可能有一个终止字符用来表示文件的结束?还是我必须删除整个文件,然后重新上传一个新文件?

不能删除文件内容的一部分。甚至不能从本地文件,更不能通过SFTP从远程文件。

你必须覆盖文件——或者至少覆盖整个文件,从第一个被修改的字节开始。然后截断文件,以防新内容比原始内容短。

您可以使用copy-dataSFTP扩展来复制文件本身内的数据,以避免需要重新加载现有内容。如果您的SFTP服务器支持扩展。在OpenSSH中,它只支持最近的9.0版本。

最新更新