Synchronizace dvou složek navzájem

(Použití třeba na cloud nebo mezi dvěma cloudy)

  1. Pomocí nástroje Robocopy (Windows)

Robocopy je nástroj vestavěný ve Windows, který je určen pro pokročilé kopírování a synchronizaci.

Postup:

  1. Otevřete příkazový řádek jako správce.
  2. Zadejte příkaz:

Použijte konzoli:

robocopy "C:\Složka1" "D:\Složka2" /MIR
    • C:\Složka1 a D:\Složka2 jsou cesty k oběma složkám.
    • Přepínač /MIR zrcadlí složky, což znamená, že přidá chybějící soubory a odstraní ty, které už v první složce nejsou.

Pozor: Použití /MIR může způsobit ztrátu dat ve složce, která se synchronizuje (smaže vše, co neexistuje ve zdrojové složce).

  1. Pomocí nástroje rsync (Linux nebo Windows s WSL)

Rsync je výkonný nástroj pro synchronizaci složek v Linuxu nebo ve Windows pomocí Windows Subsystem for Linux (WSL).

Postup:

  1. Otevřete terminál (Linux nebo WSL ve Windows).
  2. Zadejte příkaz:
rsync -av --delete /cesta/k/slozka1/ /cesta/k/slozka2/
    • -a: Archivní režim (zachovává oprávnění, symbolické odkazy, časy).
    • -v: Verbózní výstup (zobrazuje, co se děje).
    • --delete: Odstraní soubory, které již ve zdrojové složce nejsou.
  1. Pomocí FreeFileSync (Windows, Mac, Linux)

FreeFileSync je jednoduchý a přehledný nástroj pro synchronizaci složek.

Postup:

  1. Stáhněte a nainstalujte FreeFileSync.
  2. Spusťte aplikaci a:
    • Vyberte zdrojovou a cílovou složku.
    • Zvolte typ synchronizace (zrcadlení, obousměrná synchronizace, aktualizace).
  3. Klikněte na "Synchronizovat".
  1. Pomocí PowerShellu (Windows)

PowerShell umožňuje vytvořit vlastní skript pro synchronizaci.

Příklad skriptu:

$source = "C:\Složka1"

$destination = "D:\Složka2"

 

# Vytvoří synchronizaci

Sync-Directory -SourcePath $source -DestinationPath $destination

 

function Sync-Directory {

    param (

        [string]$SourcePath,

        [string]$DestinationPath

    )

 

    # Synchronizuje obsah

    Copy-Item -Path $SourcePath\* -Destination $DestinationPath -Recurse -Force

    Get-ChildItem -Path $DestinationPath -Recurse | Where-Object {

        $_.FullName -notin (Get-ChildItem -Path $SourcePath -Recurse).FullName

    } | Remove-Item -Recurse -Force

}

  • Uložte skript jako .ps1 a spusťte jej.
  1. Použití cloudových služeb (např. OneDrive, Google Drive)

Využívání cloudových služeb je také skvělý způsob, jak automaticky synchronizovat složky.

  • Umístěte složky do příslušné cloudové složky.
  • Cloudová aplikace zajistí automatickou synchronizaci.

Automatizace synchronizace

Pro pravidelnou synchronizaci můžete použít plánovač úloh:

  • Windows: Vytvořte úlohu v Plánovači úloh a spusťte Robocopy, PowerShell skript nebo jiný příkaz ve zvoleném intervalu.
  • Linux: Použijte Cron pro pravidelné spouštění příkazu rsync.