Você pode usar rsync
com a opção --backup
para fazer automaticamente backups de arquivos existentes no diretório de destino. Nota: isso só manterá uma cópia de backup - se o arquivo src for alterado duas vezes, você terá apenas a versão anterior mais recente como backup (renomeada para filename~
por padrão)
por exemplo. algo como:
#! /bin/bash
src="$1"
dst="$2"
# comment out the next line when you are sure it does what you want.
# And then try it with a trial destination dir a few times before
# running it with your real destination.
dryrun="--dry-run"
rsync $dryrun -avu --stats --progress --backup "$src" --include '**.doc' \
--include '**.pdf' --include '**.PDF' --exclude '**' "$dst/"
Se você quisesse mais cópias de backup, poderia usar a opção --backup-dir
. por exemplo,
#! /bin/bash
src="$1"
dst="$2"
dryrun="--dry-run"
BD=$(date '+%Y%m%d-%H%M%S')
rsync $dryrun -avu --stats --progress --backup --backup-dir="./$BD/" "$src" \
--include '**.doc' --include '**.pdf' --include '**.PDF' \
--exclude '**' "$dst/"