У меня есть кроссплатформенный инструментарий сборки, который копирует некоторые папки в место назначения. Я использую его robocopy
в Windows и rsync
macOS, потому что они поддерживают вывод прогресса в консоль. Команды были в таком виде:
robocopy "C:\Some\Source" "C:\Some\Destination" /MIR
rsync -a --progress --delete "/Some/Source/" "/Some/Destination"
Но теперь я столкнулся с ситуацией, когда мне нужно исключить некоторые файлы, которые могут появиться в исходном каталоге. И мне нужно, чтобы они были стерты в месте назначения, если они там были раньше. rsync
есть --delete-excluded
опция:
rsync -a --progress --delete-excluded --exclude '*.jpg' "/Some/Source/" "/Some/Destination"
Но я не могу сделать robocopy
так, используя /XF
опцию:
robocopy "C:\Some\Source" "C:\Some\Destination" /MIR /XF *.jpg
robocopy
сохраняет старые исключенные файлы в месте назначения. Есть ли способ сделать так, чтобы robocopy
вел себя как rsync
с --delete-excluded
опцией? Я знаю, что могу позже просканировать дерево назначения, чтобы удалить исключенные файлы с помощью другой команды, но я хотел бы сделать это с помощью, robocopy
потому что дерево действительно огромное, и я хочу сэкономить время на операции копирования.