Существует утилита, названная bsdiff, который делает точно такого рода вещь. Это делает это действительно быстро, и это может генерировать двоичный патч, если Вам нужно.
См. это сообщение для некоторого объяснения вокруг этого.
SFTP не имеет команды для перемещения файлов, только a rename
команда. В OpenSSH (фактическая стандартная реализация), это реализовано с rename
системный вызов, который перемещает файл в файловой системе. Нет никакой команды, которая может переместить файл в произвольное местоположение, и при этом нет команды для копирования удаленного файла в другое удаленное местоположение.
Только с доступом SFTP и не доступом оболочки, единственный способ скопировать файл состоит в том, чтобы загрузить и повторно загрузить его. Можно создать символьные ссылки.
Целевая файловая система может быть или иначе не позволяющими записями только для чтения пользователем SFTP (например, FUSE монтируются другим пользователем с allow_other
не набор, и т.д.). Войдите в целевую машину как пользователь SFTP (использование su - username
, например), и удостоверяются, что можно создать файлы. Можно также использовать клиент CLI как sftp
это может дать Вам более полезную информацию при обнаружении с ошибками.