Назад | Перейти на главную страницу

Удаленное переименование файла на общей папке Samba с помощью сценария 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?

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

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