Удаленное переименование файла на Samba share через скрипт Bash

Я запускаю сценарий Bash под Cygwin, но этот вопрос применяется более широко.

У меня есть удаленный файл: //someremoteserver/somefile.db

Этот путь "//" находится под Cygwin- это, по сути, UNC-путь в сети Windows (в данном случае), поэтому назовите его Samba.

Файл большой: 50 ГБ.

Я хочу переименовать все это на удаленном конце:

mv //someremoteserver/somefile.db //someremoteserver/someotherfile.db

Я бы хотел, чтобы это заняло 5 наносекунд, потому что это просто переименование. Но это занимает два часа. Похоже, это происходит потому, что он на самом деле копирует файл через пространство памяти локального компьютера - он перемещает 50 ГБ по локальной сети (или, может быть, даже 100 ГБ, если он копируется сюда).

Обычно в локальной системе "mv" происходит мгновенно независимо от размера файла, потому что он только обновляет таблицу inode / file.

Есть ли хороший способ сделать то же самое, когда файл находится на удаленном общем ресурсе Samba?

1 ответ

Обычно в локальной системе "mv" происходит мгновенно независимо от размера файла, потому что он только обновляет таблицу inode/file.

Именно так. Я предполагаю, что вы захотите вызвать переименование /mv с хоста, содержащего файловую систему.

Другие вопросы по тегам