我有一个跨平台构建工具链,它将一些文件夹复制到目标。我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
因为树真的很大,我想通过复制操作节省时间。