Me tomó algunos intentos hacer que esto funcionara. La respuesta de Nils requiere que $TARGET
termine en /
final, como lo explica ジョージ.
Aquí hay una versión que agrega explícitamente el final/
:
rsync -avun --delete ${TARGET}/ ${SOURCE} | sed -ne 's/^deleting *//p'
Esto proporciona la lista de archivos que existen debajo del directorio ${SOURCE}
pero no debajo del directorio ${TARGET}
.
Uso sed
aquí para eliminar el deleting
inicial de las líneas de salida y para imprimir solo esas líneas.
No uso la opción rsync
-c
porque comparar el contenido de los archivos sería mucho más lento para mis casos de uso, y comparar solo los tamaños de los archivos y los tiempos de modificación también parece suficiente en estos casos. No tengo ninguna razón para sospechar que mis computadoras sufren problemas de sesgo de reloj o que algo maliciosamente cambió las marcas de tiempo. También,el resultado de -c
no puede cambiar la decisión de eliminar un archivo, solo la decisión de actualizar o mantener un archivo.
También uso -u
y-a
(en lugar de -r
), para poder volver a -usar la línea de comando y cambiarla para copiar directorios y archivos seleccionados de ${SOURCE}
a ${TARGET}
, así:
rsync -avu ${SOURCE}/{dirA,dirB,fileX} ${TARGET} # copy some files
У меня такая же проблема. Я также использую безопасную загрузку, но я не думаю, что это связано с безопасной загрузкой. Безопасная загрузка не блокирует доступ к устройствам, она только проверяет загрузчики.
Вы уже нашли исправление?