Los que usáis Linux -sé que somos muchos- buscando software para sincronizar vuestra carpeta de inicio con una unidad USB externa, dejad de hacerlo. No necesitáis comprar software ni buscar fuera de vuestra propia máquina para hacerlo de una manera bastante consistente. Basta con utilizar las herramientas que el propio Linux proporciona de forma gratuita.

En este caso hablamos de rsync. Tenemos abajo un script que leerá y transferirá sólo los archivos más nuevos -creados o modificados, de un directorio de origen a un directorio de destino. Después, hará lo mismo a la inversa, por si hay algo más nuevo en el disco externo.

Considere que tiene la opción -n activada, por lo que este ejemplo sólo hará un simulacro, nada se hará realmente aunque lo parezca. Una vez que se sienta cómodo con lo que sucederá cuando ejecute el script, puede deshacerse de la opción -n.

Considera también cambiar todas las apariencias de origen y destino en el script ya que son nombres ficticios sólo para el ejemplo. Escribí esto pensando en sincronizar tu carpeta de inicio con un disco duro USB externo, así que esto es lo que funciona para mí.

    #!/bin/sh
    exitcode=1
    #do check if usb hdd is mounted
    echo "CHECKING IF USB HDD IS AVAILABLE..."
    if test -e '/path_to_the_mountpoint/'; then
    exitcode=0
    #from home folder to usb hdd if local files are newer
    echo "SYNCING UP FROM PC TO USB HDD"
    rsync -avun --inplace --info=progress2 --info=name0 /source/ /path_to_the_mountpoint/
    #from usb hdd to home folder if usb hdd files are newer
    echo "SYNCING UP FROM USB HDD TO PC"
    rsync -avun --inplace --info=progress2 --info=name0 /path_to_the_mountpoint/ /source/
    fi
    #if the usb hdd is not mounted exit wit exitcode=1
    echo "USB HDD NOT MOUNTED!"
    exit $exitcode