Переименуйте Дубликаты файлов при использовании SCP (Безопасная Копия)

Я использую scp для перемещения файлов между серверами в моей сети следующим образом...

scp /folder/file user@<ip address>/User/Documents/Transfer

... однако я не хочу перезаписывать дубликаты файлов. Есть ли какой-либо способ переименовать файлы, кто имя, уже взят в папке назначения?

Например, Если file.txt уже существует в папке назначения, новом file1.txt был бы переименован к file1-1.txt и последующие версии были бы file1-2.txt и т.д. Таким же образом то, что другое предложение ОС опция сохранить оба файла.

Формат имен файлов не строг, я просто не хочу должным быть вручную переименовывать файлы перед передачей, и я не хочу терять важные данные.

2
задан 3 October 2016 в 05:20

1 ответ

Я полагаю, что Вы не сможете сделать это с scp один. Ваш лучший выбор состоял бы в том, чтобы использовать rsync ssh с чем-то как следующие дополнительные опции:

--backup --suffix=_`date +"%m%d%Y_%H%M"` --backup-dir=DIR

Некоторые соответствующие разделы страниц справочника для rsync:

-b, --backup
   With this option, preexisting destination files are renamed as  each  file  is
   transferred  or  deleted.  You can control where the backup file goes and what
   (if any) suffix gets appended using the --backup-dir and --suffix options.

--suffix=SUFFIX
    This option allows you to override the default backup  suffix  used  with  the
    --backup  (-b) option. The default suffix is a ~ if no --backup-dir was speci-
    fied, otherwise it is an empty string.

--backup-dir=DIR
     In combination with the --backup option, this tells rsync to store all backups
     in the specified directory on the receiving side.  This can be used for incre-
     mental backups.  You can additionally specify a backup suffix using the --suf-
     fix option (otherwise the files backed up in the specified directory will keep
     their original filenames).

Это должно смочь массажироваться для установки потребностям. Ниже базовый тест, у Вас, несомненно, будут другие опции включая ssh, для включения:

rsync -av --backup --suffix=_`date +"%m%d%Y_%H%M"` --backup-dir=backup test1/ test2/

Таким образом с этим на месте:

  1. Файл передается от test1 кому: test2
  2. Если этот файл уже существует на test2, но переданный файл является более новым, 'удаленный' файл обновляется, и значительно:
  3. Исходный файл на test2 поддерживается до test2/backup с возрастающим добавленным суффиксом даты и времени

Довольно прохладный? И я подозреваю точно, что Вы ищете. Обратите внимание, что я использовал относительный путь для резервного каталога, полный путь может также использоваться...

3
ответ дан 2 December 2019 в 02:50

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

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