Tengo una cadena de herramientas de compilación multiplataforma que copia algunas carpetas al destino. Lo uso robocopy
en Windows y rsync
macOS porque admiten la salida del progreso de la consola. Los comandos estaban en esta forma:
robocopy "C:\Some\Source" "C:\Some\Destination" /MIR
rsync -a --progress --delete "/Some/Source/" "/Some/Destination"
Pero ahora me encuentro con una situación en la que necesito excluir algunos archivos que pueden aparecer en el directorio de origen. Y necesito que se borren en el destino si estaban allí antes. rsync
tiene --delete-excluded
opción:
rsync -a --progress --delete-excluded --exclude '*.jpg' "/Some/Source/" "/Some/Destination"
Pero no puedo actuar robocopy
así usando la /XF
opción:
robocopy "C:\Some\Source" "C:\Some\Destination" /MIR /XF *.jpg
robocopy
mantiene los archivos antiguos excluidos en el destino. ¿Hay alguna manera de hacer que robocopy
se comporte como rsync
con la --delete-excluded
opción? Sé que puedo escanear el árbol de destino más tarde para eliminar archivos excluidos con otro comando, pero me gustaría hacerlo robocopy
porque el árbol es realmente enorme y quiero ahorrar tiempo con la operación de copia.