docs: note that destination is always a directory (#5766)

This commit is contained in:
albertony 2021-10-30 00:30:00 +02:00 committed by GitHub
parent 70297c3aed
commit a238877ad8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 44 additions and 11 deletions

View File

@ -16,33 +16,47 @@ Copy the source to the destination. Doesn't transfer
unchanged files, testing by size and modification time or unchanged files, testing by size and modification time or
MD5SUM. Doesn't delete files from the destination. MD5SUM. Doesn't delete files from the destination.
Note that it is always the contents of the directory that is synced, Note that when the source is a directory, it is always the contents
not the directory so when source:path is a directory, it's the of the directory that is copied, not the directory itself.
contents of source:path that are copied, not the directory name and
contents.
If dest:path doesn't exist, it is created and the source:path contents For example, given the following command:
go there.
For example
rclone copy source:sourcepath dest:destpath rclone copy source:sourcepath dest:destpath
Let's say there are two files in sourcepath Let's say there are two files in source:
sourcepath/one.txt sourcepath/one.txt
sourcepath/two.txt sourcepath/two.txt
This copies them to The command will copy them to:
destpath/one.txt destpath/one.txt
destpath/two.txt destpath/two.txt
Not to Not to:
destpath/sourcepath/one.txt destpath/sourcepath/one.txt
destpath/sourcepath/two.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 If you are familiar with `rsync`, rclone always works as if you had
written a trailing `/` - meaning "copy the contents of this directory". written a trailing `/` - meaning "copy the contents of this directory".
This applies to all commands and whether you are talking about the This applies to all commands and whether you are talking about the

View File

@ -26,6 +26,25 @@ move will be used, otherwise it will copy it (server-side if possible)
into `dest:path` then delete the original (if no errors on copy) in into `dest:path` then delete the original (if no errors on copy) in
`source:path`. `source:path`.
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 moved into it. This is the case even if the source
path points to a file. If you want to move a single file to a different
name you must use [moveto](commands/rclone_moveto/) instead.
For example, given the command:
rclone move 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 move the single source file into the given destination path,
which would be the result if moveto had been used instead:
dest:destpath/one.txt
If you want to delete empty source directories after move, use the --delete-empty-src-dirs flag. If you want to delete empty source directories after move, use the --delete-empty-src-dirs flag.
See the [--no-traverse](/docs/#no-traverse) option for controlling See the [--no-traverse](/docs/#no-traverse) option for controlling