--- tags: - Rclone - PowerShell - Synchronization - Google Drive --- ## Purpose This document explains the practical differences between the rclone `copy`, `sync`, `check`, and `bisync` commands and links to the separate workflow for configuring and recovering a bidirectional synchronization pair. The examples use PowerShell and assume that one side of the synchronization is a Google Drive remote. Rclone is a command-line file-management program that supports cloud storage providers, object-storage platforms, local filesystems, and standard transfer protocols. [Download rClone](https://rclone.org/downloads) [Official rClone Documentation](https://rclone.org/docs/) !!! info "Version Context" This document was reviewed against rclone `v1.75.0`. Older releases may not support every bisync flag documented here, and future versions may change some recovery behavior. !!! danger "Rclone Can Delete or Overwrite Data" The `sync` and `bisync` commands can delete, replace, rename, or propagate the deletion of files. Always confirm the source and destination paths, maintain a separate backup or snapshot, and preview unfamiliar operations with `--dry-run` before allowing them to modify data. A dry run is a preview and is not a replacement for a backup. ## Prepare the Command Set the executable path in the PowerShell session before using the command examples. Replace the example path with the location of `rclone.exe` on the target machine. ```powershell $Rclone = "C:\Path\To\rclone.exe" ``` ## Command Behavior The correct command depends on the intended relationship between the source and destination. | **Command** | **Primary Behavior** | **Deletes Destination-Only Files** | **Direction** | | :--- | :--- | :--- | :--- | | `copy` | Adds or updates source files at the destination while retaining unrelated destination files | No | One-way | | `sync` | Makes the destination match the source | Yes | One-way | | `check` | Compares files without modifying either side | No | Read-only | | `bisync` | Detects and propagates changes made on either side by comparing the current state against prior listings | Yes | Two-way | ### Use `copy` for Additive Transfers Use `copy` when you need to add or update files without deleting files that already exist only at the destination. ```powershell & $Rclone copy "Source" "Destination" --update --dry-run --verbose ``` The `--update` flag skips a source file when the corresponding destination file has a newer modification time. It does not create version history, and it does not prevent an older destination file from being replaced by a newer source file. After reviewing the dry-run output, repeat the operation without `--dry-run`: ```powershell & $Rclone copy "Source" "Destination" --update --verbose ``` ### Use `sync` Only for Intentional Mirroring Use `sync` when the destination must become a one-way mirror of the source. !!! danger "`sync` Deletes Destination-Only Files" The `sync` command removes files from the destination when they do not exist in the source. This is true even when `--update` is present. The `--update` flag only prevents a newer destination file from being replaced by an older source file. It does not convert `sync` into an additive operation and does not protect destination-only files from deletion. Preview the operation first: ```powershell & $Rclone sync "Source" "Destination" --dry-run --verbose ``` Only remove `--dry-run` after confirming that every proposed copy, replacement, and deletion is intentional: ```powershell & $Rclone sync "Source" "Destination" --verbose ``` ### Use `check` for Read-Only Comparison The `check` command compares files on both sides without copying, replacing, or deleting them. ```powershell & $Rclone check "Source" "Destination" --combined "rclone-comparison.txt" --log-level INFO --log-file "rclone-check.log" ``` The combined report uses the following symbols: | **Symbol** | **Meaning** | | :--- | :--- | | `=` | The file exists on both sides and matches | | `+` | The file exists only in the source | | `-` | The file exists only in the destination | | `*` | The same path exists on both sides, but the files differ | | `!` | The file could not be read or compared | The `check` command compares files but does not report missing empty directories. ## Configure Two-Way Synchronization Use [Configure and Recover Rclone Bisync](<../../../workflows/Applications/Files and Collaboration/Configure and Recover Rclone Bisync.md>) for initialization, normal runs, state handling, and recovery. ## Related Documentation - [Related Files and Collaboration Documentation]() — Find the connected deployments, procedures, and references for this subject.