--- title: "rclone copy" description: "Copy files from source to dest, skipping already copied." slug: rclone_copy url: /commands/rclone_copy/ # autogenerated - DO NOT EDIT, instead edit the source code in cmd/copy/ and as part of making a release run "make commanddocs" --- # rclone copy Copy files from source to dest, skipping already copied. ## Synopsis Copy the source to the destination. Doesn't transfer unchanged files, testing by size and modification time or MD5SUM. Doesn't delete files from the destination. Note that when the source is a directory, it is always the contents of the directory that is copied, not the directory itself. For example, given the following command: rclone copy source:sourcepath dest:destpath Let's say there are two files in source: sourcepath/one.txt sourcepath/two.txt The command will copy them to: destpath/one.txt destpath/two.txt Not to: destpath/sourcepath/one.txt destpath/sourcepath/two.txt Also note that the destination is always a directory. If the path does not exist, it will be created as a directory and the contents of the source will be copied into it. This is the case even if the source path points to a file. If you want to copy a single file to a different name you must use [copyto](commands/rclone_copyto/) instead. For example, given the command: rclone copy source:sourcepath/one.txt dest:destpath/one.txt Rclone will create a directory `dest:destpath/one.txt` and put the source file in there: dest:destpath/one.txt/one.txt Not copy the single source file as a file with the given destination path, which would be the result if copyto had been used instead: dest:destpath/one.txt If you are familiar with `rsync`, rclone always works as if you had written a trailing `/` - meaning "copy the contents of this directory". This applies to all commands and whether you are talking about the source or destination. See the [--no-traverse](/docs/#no-traverse) option for controlling whether rclone lists the destination directory or not. Supplying this option when copying a small number of files into a large destination can speed transfers up greatly. For example, if you have many files in /path/to/src but only a few of them change every day, you can copy all the files which have changed recently very efficiently like this: rclone copy --max-age 24h --no-traverse /path/to/src remote: **Note**: Use the `-P`/`--progress` flag to view real-time transfer statistics. **Note**: Use the `--dry-run` or the `--interactive`/`-i` flag to test without copying anything. ``` rclone copy source:path dest:path [flags] ``` ## Options ``` --create-empty-src-dirs Create empty source dirs on destination after copy -h, --help help for copy ``` See the [global flags page](/flags/) for global options not listed here. ## SEE ALSO * [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends.