Почему я получаю «X» и «Y» - это один и тот же файл при использовании mv, даже если они явно НЕ один и тот же файл?

Я пытаюсь переместить файл из одного каталога в другой в файловой системе, смонтированной на CIFS, с помощью команды:

mv /mnt/development/Backup/NagiosServer/latest/* /mnt/development/Backup/NagiosServer/daily/

В результате появляется сообщение об ошибке:

mv: '/mnt/development/Backup/NagiosServer/latest/20190512-backup.zip' and '/mnt/development/Backup/NagiosServer/daily/20190512-backup.zip' are the same file

Целевой файл в каталоге ... / daily / определенно не существует на данный момент.

Это список соответствующих каталогов после возникновения ошибки:

nagios@nagios-server:~$ mv /mnt/development/Backup/NagiosServer/latest/* /mnt/development/Backup/NagiosServer/daily
mv: '/mnt/development/Backup/NagiosServer/latest/20190514-backup.zip' and '/mnt/development/Backup/NagiosServer/daily/20190514-backup.zip' are the same file
nagios@nagios-server:~$ ls -lsha /mnt/development/Backup/NagiosServer/latest/
total 3.5G
   0 drwxr-xr-x 2 nagios root    0 May 15 08:00 .
   0 drwxr-xr-x 2 nagios root    0 May 13 15:15 ..
3.5G -rwxr-xr-x 1 nagios root 3.5G May 14 17:13 20190514-backup.zip
nagios@nagios-server:~$ ls -lsha /mnt/development/Backup/NagiosServer/daily
total 18G
4.0K drwxr-xr-x 2 nagios root 4.0K May 15 08:00 .
   0 drwxr-xr-x 2 nagios root    0 May 13 15:15 ..
3.5G -rwxr-xr-x 1 nagios root 3.5G May  8 17:12 20190508-backup.zip
3.5G -rwxr-xr-x 1 nagios root 3.5G May  9 17:12 20190509-backup.zip
3.5G -rwxr-xr-x 1 nagios root 3.5G May 10 17:12 20190510-backup.zip
3.5G -rwxr-xr-x 1 nagios root 3.5G May 11 17:14 20190511-backup.zip
3.5G -rwxr-xr-x 1 nagios root 3.5G May 12 17:12 20190512-backup.zip

Список несмонтированной точки монтирования ничего не показывает:

nagios@nagios-server:~$ ls /mnt/development/
nagios@nagios-server:~$ 

Я следовал найденному совету [ 114] здесь , чтобы отключить кэширование CIFS, которое работает, но только при первой попытке mv. После этого происходит сбой с тем же сообщением об ошибке.

Что здесь происходит?

Я работаю под Ubuntu 18.04, а смонтированная файловая система CIFS находится на удаленной машине с Windows 10. Кроме того, на компьютере Windows установлена ​​виртуальная машина VirtualBox, которая также работает под управлением Ubuntu 18.04. Команда mv работает без проблем при запуске с ВМ.

1
задан 15 May 2019 в 01:08

1 ответ

Это один и тот же файл, в том смысле, что во время перемещения в этих файлах произошла коллизия. Возможно, было бы более понятно, если бы вместо этого использовалось имя файла .

Это предупреждение о том, что вы перемещаете файлы из источника в место назначения, и этот файл или имя файла уже существует в месте назначения. Это означает, что есть вероятность, что вы потеряете данные. Этот существующий файл будет перезаписан.

Вы можете использовать флаги --interactive или --force, чтобы изменить это поведение, но вы должны понимать, что вы делаете.

$ man mv
...

       -f, --force
              do not prompt before overwriting

       -i, --interactive
              prompt before overwrite

       -n, --no-clobber
              do not overwrite an existing file

       If you specify more than one of -i, -f, -n, only the final one takes effect.

Когда вы вводите команду в первый раз, некоторые файлы перемещаются из источника в место назначения, пока этот файл не будет перемещен. В это время mv выдает ошибки и предупреждает вас о ситуации. Будьте осторожны, что на данный момент вы не завершили ход. Вы не копируете, поэтому многие исходные файлы могут отсутствовать в исходном каталоге.

Если вы знаете, что вам не нужны данные, находящиеся в данный момент в месте назначения /mnt/development/Backup/NagiosServer/daily/20190512-backup.zip, удалите их перед выполнением команды mv или принудительно перезапишите существующие файлы.

Я рекомендую вам также изучить rsync и его возможности.

0
ответ дан 15 May 2019 в 01:08

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

Похожие вопросы: