From 6e2e2d9eb226645e9a9b2502a9fb353fc3e7f19d Mon Sep 17 00:00:00 2001 From: Nick Craig-Wood Date: Wed, 31 Mar 2021 19:12:08 +0100 Subject: [PATCH] Version v1.55.0 --- MANUAL.html | 1289 +++++++-- MANUAL.md | 1783 ++++++++++-- MANUAL.txt | 1867 ++++++++++-- docs/content/authors.md | 1 + docs/content/azureblob.md | 16 + docs/content/changelog.md | 154 + docs/content/chunker.md | 23 + docs/content/commands/rclone.md | 2 + docs/content/commands/rclone_copyurl.md | 20 +- docs/content/commands/rclone_dedupe.md | 4 +- docs/content/commands/rclone_mount.md | 53 +- docs/content/commands/rclone_selfupdate.md | 84 + docs/content/commands/rclone_serve_dlna.md | 21 + docs/content/commands/rclone_serve_ftp.md | 21 + docs/content/commands/rclone_serve_http.md | 21 + docs/content/commands/rclone_serve_sftp.md | 21 + docs/content/commands/rclone_serve_webdav.md | 21 + docs/content/commands/rclone_sync.md | 9 +- docs/content/commands/rclone_test.md | 41 + .../content/commands/rclone_test_histogram.md | 36 + docs/content/commands/rclone_test_info.md | 44 + .../content/commands/rclone_test_makefiles.md | 33 + docs/content/commands/rclone_test_memory.md | 27 + docs/content/commands/rclone_version.md | 17 +- docs/content/crypt.md | 14 + docs/content/dropbox.md | 15 + docs/content/flags.md | 27 +- docs/content/ftp.md | 24 + docs/content/local.md | 8 +- docs/content/rc.md | 72 +- docs/content/sftp.md | 38 + docs/content/webdav.md | 21 +- docs/content/zoho.md | 49 + go.sum | 77 - rclone.1 | 2571 +++++++++++++++-- 35 files changed, 7368 insertions(+), 1156 deletions(-) create mode 100644 docs/content/commands/rclone_selfupdate.md create mode 100644 docs/content/commands/rclone_test.md create mode 100644 docs/content/commands/rclone_test_histogram.md create mode 100644 docs/content/commands/rclone_test_info.md create mode 100644 docs/content/commands/rclone_test_makefiles.md create mode 100644 docs/content/commands/rclone_test_memory.md diff --git a/MANUAL.html b/MANUAL.html index c34d361e4..b30001a19 100644 --- a/MANUAL.html +++ b/MANUAL.html @@ -17,7 +17,7 @@

rclone(1) User Manual

Nick Craig-Wood

-

Feb 02, 2021

+

Mar 31, 2021

Rclone syncs your files to cloud storage

rclone logo

@@ -144,6 +144,7 @@

See below for some expanded Linux / macOS instructions.

See the Usage section of the docs for how to use rclone, or run rclone -h.

+

Already installed rclone can be easily updated to the latest version using the rclone selfupdate command.

Script installation

To install rclone on Linux/macOS/BSD systems, run:

curl https://rclone.org/install.sh | sudo bash
@@ -235,7 +236,7 @@ docker run --rm \ ls ~/data/mount kill %1

Install from source

-

Make sure you have at least Go 1.12 installed. Download go if necessary. The latest release is recommended. Then

+

Make sure you have at least Go go1.13 installed. Download go if necessary. The latest release is recommended. Then

git clone https://github.com/rclone/rclone.git
 cd rclone
 go build
@@ -257,7 +258,7 @@ go build
       roles:
           - rclone

Configure

-

First, you'll need to configure rclone. As the object storage systems have quite complicated authentication these are kept in a config file. (See the --config entry for how to find the config file and choose its location.)

+

First, you'll need to configure rclone. As the object storage systems have quite complicated authentication these are kept in a config file. (See the --config entry for how to find the config file and choose its location.)

The easiest way to make the config is to run rclone with the config option:

rclone config

See the following for detailed instructions for

@@ -377,13 +378,14 @@ destpath/sourcepath/two.txt

rclone sync

Make source and dest identical, modifying destination only.

Synopsis

-

Sync the source to the destination, changing the destination only. Doesn't transfer unchanged files, testing by size and modification time or MD5SUM. Destination is updated to match source, including deleting files if necessary.

+

Sync the source to the destination, changing the destination only. Doesn't transfer unchanged files, testing by size and modification time or MD5SUM. Destination is updated to match source, including deleting files if necessary (except duplicate objects, see below).

Important: Since this can cause data loss, test first with the --dry-run or the --interactive/-i flag.

rclone sync -i SOURCE remote:DESTINATION
-

Note that files in the destination won't be deleted if there were any errors at any point.

+

Note that files in the destination won't be deleted if there were any errors at any point. Duplicate objects (files with the same name, on those providers that support it) are also not yet handled.

It is always the contents of the directory that is synced, not the directory so when source:path is a directory, it's the contents of source:path that are copied, not the directory name and contents. See extended explanation in the copy command above if unsure.

If dest:path doesn't exist, it is created and the source:path contents go there.

Note: Use the -P/--progress flag to view real-time transfer statistics

+

Note: Use the rclone dedupe command to deal with "Duplicate object/directory found in source/destination - ignoring" errors. See this forum post for more info.

rclone sync source:path dest:path [flags]

Options

      --create-empty-src-dirs   Create empty source dirs on destination after sync
@@ -647,12 +649,16 @@ rclone --dry-run --min-size 100M delete remote:path

rclone version

Show the version number.

Synopsis

-

Show the version number, the go version and the architecture.

-

Eg

+

Show the rclone version number, the go version, the build target OS and architecture, build tags and the type of executable (static or dynamic).

+

For example:

$ rclone version
-rclone v1.41
-- os/arch: linux/amd64
-- go version: go1.10
+rclone v1.54 +- os/type: linux +- os/arch: amd64 +- go/version: go1.16 +- go/linking: static +- go/tags: none +

Note: before rclone version 1.55 the os/type and os/arch lines were merged, and the "go/version" line was tagged as "go version".

If you supply the --check flag, then it will do an online check to compare your version with the latest release and the latest beta.

$ rclone version --check
 yours:  1.42.0.6
@@ -690,7 +696,7 @@ beta:   1.42.0.5      (released 2018-06-17)
 

Interactively find duplicate filenames and delete/rename them.

Synopsis

By default dedupe interactively finds files with duplicate names and offers to delete all but one or rename them to be different. This is known as deduping by name.

-

Deduping by name is only useful with backends like Google Drive which can have duplicate file names. It can be run on wrapping backends (e.g. crypt) if they wrap a backend which supports duplicate file names.

+

Deduping by name is only useful with a small group of backends (e.g. Google Drive, Opendrive) that can have duplicate file names. It can be run on wrapping backends (e.g. crypt) if they wrap a backend which supports duplicate file names.

However if --by-hash is passed in then dedupe will find files with duplicate hashes instead which will work on any backend which supports at least one hash. This can be used to find files with duplicate content. This is known as deduping by hash.

If deduping by name, first rclone will merge directories with the same name. It will do this iteratively until all the identically named directories have been merged.

Next, if deduping by name, for every group of duplicate file names / hashes, it will delete all but one identical files it finds without confirmation. This means that for most duplicated files the dedupe command will not be interactive.

@@ -1060,15 +1066,16 @@ if src is directory

Copy url content to dest.

Synopsis

Download a URL's content and copy it to the destination without saving it in temporary storage.

-

Setting --auto-filename will cause the file name to be retrieved from the from URL (after any redirections) and used in the destination path.

-

Setting --no-clobber will prevent overwriting file on the destination if there is one with the same name.

-

Setting --stdout or making the output file name "-" will cause the output to be written to standard output.

+

Setting --auto-filenamewill cause the file name to be retrieved from the from URL (after any redirections) and used in the destination path. With --print-filename in addition, the resuling file name will be printed.

+

Setting --no-clobber will prevent overwriting file on the destination if there is one with the same name.

+

Setting --stdout or making the output file name - will cause the output to be written to standard output.

rclone copyurl https://example.com dest:path [flags]

Options

-
  -a, --auto-filename   Get the file name from the URL and use it for destination file path
-  -h, --help            help for copyurl
-      --no-clobber      Prevent overwriting file with same name
-      --stdout          Write the output to stdout rather than a file
+
  -a, --auto-filename    Get the file name from the URL and use it for destination file path
+  -h, --help             help for copyurl
+      --no-clobber       Prevent overwriting file with same name
+  -p, --print-filename   Print the resulting name from --auto-filename
+      --stdout           Write the output to stdout rather than a file

See the global flags page for global options not listed here.

SEE ALSO

On Linux and OSX, you can either run mount in foreground mode or background (daemon) mode. Mount runs in foreground mode by default, use the --daemon flag to specify background mode. You can only run mount in foreground mode on Windows.

On Linux/macOS/FreeBSD start the mount like this, where /path/to/local/mount is an empty existing directory:

rclone mount remote:path/to/files /path/to/local/mount
-

On Windows you can start a mount in different ways. See below for details. The following examples will mount to an automatically assigned drive, to specific drive letter X:, to path C:\path\to\nonexistent\directory (which must be non-existent subdirectory of an existing parent directory or drive, and is not supported when mounting as a network drive), and the last example will mount as network share \\cloud\remote and map it to an automatically assigned drive:

+

On Windows you can start a mount in different ways. See below for details. The following examples will mount to an automatically assigned drive, to specific drive letter X:, to path C:\path\parent\mount (where parent directory or drive must exist, and mount must not exist, and is not supported when mounting as a network drive), and the last example will mount as network share \\cloud\remote and map it to an automatically assigned drive:

rclone mount remote:path/to/files *
 rclone mount remote:path/to/files X:
-rclone mount remote:path/to/files C:\path\to\nonexistent\directory
+rclone mount remote:path/to/files C:\path\parent\mount
 rclone mount remote:path/to/files \\cloud\remote

When the program ends while in foreground mode, either via Ctrl+C or receiving a SIGINT or SIGTERM signal, the mount should be automatically stopped.

When running in background mode the user will have to stop the mount manually:

@@ -1443,10 +1450,10 @@ umount /path/to/local/mount

Mounting modes on windows

Unlike other operating systems, Microsoft Windows provides a different filesystem type for network and fixed drives. It optimises access on the assumption fixed disk drives are fast and reliable, while network drives have relatively high latency and less reliability. Some settings can also be differentiated between the two types, for example that Windows Explorer should just display icons and not create preview thumbnails for image and video files on network drives.

In most cases, rclone will mount the remote as a normal, fixed disk drive by default. However, you can also choose to mount it as a remote network drive, often described as a network share. If you mount an rclone remote using the default, fixed drive mode and experience unexpected program errors, freezes or other issues, consider mounting as a network drive instead.

-

When mounting as a fixed disk drive you can either mount to an unused drive letter, or to a path - which must be non-existent subdirectory of an existing parent directory or drive. Using the special value * will tell rclone to automatically assign the next available drive letter, starting with Z: and moving backward. Examples:

+

When mounting as a fixed disk drive you can either mount to an unused drive letter, or to a path representing a non-existent subdirectory of an existing parent directory or drive. Using the special value * will tell rclone to automatically assign the next available drive letter, starting with Z: and moving backward. Examples:

rclone mount remote:path/to/files *
 rclone mount remote:path/to/files X:
-rclone mount remote:path/to/files C:\path\to\nonexistent\directory
+rclone mount remote:path/to/files C:\path\parent\mount
 rclone mount remote:path/to/files X:

Option --volname can be used to set a custom volume name for the mounted file system. The default is to use the remote name and path.

To mount as network drive, you can add option --network-mode to your mount command. Mounting to a directory path is not supported in this mode, it is a limitation Windows imposes on junctions, so the remote must always be mounted to a drive letter.

@@ -1466,7 +1473,9 @@ rclone mount remote:path/to/files * --volname \\cloud\remote

The FUSE emulation layer on Windows must convert between the POSIX-based permission model used in FUSE, and the permission model used in Windows, based on access-control lists (ACL).

The mounted filesystem will normally get three entries in its access-control list (ACL), representing permissions for the POSIX permission scopes: Owner, group and others. By default, the owner and group will be taken from the current user, and the built-in group "Everyone" will be used to represent others. The user/group can be customized with FUSE options "UserName" and "GroupName", e.g. -o UserName=user123 -o GroupName="Authenticated Users".

The permissions on each entry will be set according to options --dir-perms and --file-perms, which takes a value in traditional numeric notation, where the default corresponds to --file-perms 0666 --dir-perms 0777.

-

Note that the mapping of permissions is not always trivial, and the result you see in Windows Explorer may not be exactly like you expected. For example, when setting a value that includes write access, this will be mapped to individual permissions "write attributes", "write data" and "append data", but not "write extended attributes" (WinFsp does not support extended attributes, see this). Windows will then show this as basic permission "Special" instead of "Write", because "Write" includes the "write extended attributes" permission.

+

Note that the mapping of permissions is not always trivial, and the result you see in Windows Explorer may not be exactly like you expected. For example, when setting a value that includes write access, this will be mapped to individual permissions "write attributes", "write data" and "append data", but not "write extended attributes". Windows will then show this as basic permission "Special" instead of "Write", because "Write" includes the "write extended attributes" permission.

+

If you set POSIX permissions for only allowing access to the owner, using --file-perms 0600 --dir-perms 0700, the user group and the built-in "Everyone" group will still be given some special permissions, such as "read attributes" and "read permissions", in Windows. This is done for compatibility reasons, e.g. to allow users without additional permissions to be able to read basic metadata about files like in UNIX. One case that may arise is that other programs (incorrectly) interprets this as the file being accessible by everyone. For example an SSH client may warn about "unprotected private key file".

+

WinFsp 2021 (version 1.9, still in beta) introduces a new FUSE option "FileSecurity", that allows the complete specification of file security descriptors using SDDL. With this you can work around issues such as the mentioned "unprotected private key file" by specifying -o FileSecurity="D:P(A;;FA;;;OW)", for file all access (FA) to the owner (OW).

Windows caveats

Note that drives created as Administrator are not visible by other accounts (including the account that was elevated as Administrator). So if you start a Windows drive from an Administrative Command Prompt and then try to access the same drive from Explorer (which does not run as Administrator), you will not be able to see the new drive.

The easiest way around this is to start the drive from a normal command prompt. It is also possible to start a drive from the SYSTEM account (using the WinFsp.Launcher infrastructure) which creates drives accessible for everyone on the system or alternatively using the nssm service manager.

@@ -1475,7 +1484,7 @@ rclone mount remote:path/to/files * --volname \\cloud\remote

The bucket based remotes (e.g. Swift, S3, Google Compute Storage, B2, Hubic) do not support the concept of empty directories, so empty directories will have a tendency to disappear once they fall out of the directory cache.

Only supported on Linux, FreeBSD, OS X and Windows at the moment.

rclone mount vs rclone sync/copy

-

File systems expect things to be 100% reliable, whereas cloud storage systems are a long way from 100% reliable. The rclone sync/copy commands cope with this with lots of retries. However rclone mount can't use retries in the same way without making local copies of the uploads. Look at the VFS file caching section for solutions to make mount more reliable.

+

File systems expect things to be 100% reliable, whereas cloud storage systems are a long way from 100% reliable. The rclone sync/copy commands cope with this with lots of retries. However rclone mount can't use retries in the same way without making local copies of the uploads. Look at the VFS File Caching for solutions to make mount more reliable.

Attribute caching

You can use the flag --attr-timeout to set the time the kernel caches the attributes (size, modification time, etc.) for directory entries.

The default is 1s which caches files just long enough to avoid too many callbacks to rclone from the kernel.

@@ -1526,6 +1535,7 @@ rclone mount remote:path/to/files * --volname \\cloud\remote

The cache has 4 different modes selected by --vfs-cache-mode. The higher the cache mode the more compatible rclone becomes at the cost of using disk space.

Note that files are written back to the remote only when they are closed and if they haven't been accessed for --vfs-write-back second. If rclone is quit or dies with files that haven't been uploaded, these will be uploaded next time rclone is run with the same flags.

If using --vfs-cache-max-size note that the cache may exceed this size for two reasons. Firstly because it is only checked every --vfs-cache-poll-interval. Secondly because open files cannot be evicted from the cache.

+

You should not run two copies of rclone using the same VFS cache with the same or overlapping remotes if using --vfs-cache-mode > off. This can potentially cause data corruption if you do. You can work around this by giving each rclone its own cache hierarchy with --cache-dir. You don't need to worry about this if the remotes in use don't overlap.

--vfs-cache-mode off

In this mode (the default) the cache will read directly from the remote and write directly to the remote without caching anything on disk.

This will mean some operations are not possible

@@ -1583,6 +1593,9 @@ rclone mount remote:path/to/files * --volname \\cloud\remote

The user may specify a file name to open/delete/rename/etc with a case different than what is stored on mounted file system. If an argument refers to an existing file with exactly the same name, then the case of the existing file on the disk will be used. However, if a file name with exactly the same name is not found but a name differing only by case exists, rclone will transparently fixup the name. This fixup happens only when an existing file is requested. Case sensitivity of file names created anew by rclone is controlled by an underlying mounted file system.

Note that case sensitivity of the operating system running rclone (the target) may differ from case sensitivity of a file system mounted by rclone (the source). The flag controls whether "fixup" is performed to satisfy the target.

If the flag is not provided on the command line, then its default value depends on the operating system where rclone runs: "true" on Windows and macOS, "false" otherwise. If the flag is provided without a value, then it is "true".

+

Alternate report of used bytes

+

Some backends, most notably S3, do not report the amount of bytes used. If you need this information to be available when running df on the filesystem, then pass the flag --vfs-used-is-size to rclone. With this flag set, instead of relying on the backend to report this information, rclone will scan the whole remote similar to rclone size and compute the total used space itself.

+

WARNING. Contrary to rclone size, this flag ignores filters so that the result is accurate. However, this is very inefficient and may cost lots of API calls resulting in extra charges. Use it as a last resort and only with caching.

rclone mount remote:path /path/to/mountpoint [flags]

Options

      --allow-non-empty                        Allow mounting over a non-empty directory. Not supported on Windows.
@@ -1621,6 +1634,7 @@ rclone mount remote:path/to/files * --volname \\cloud\remote
--vfs-read-chunk-size SizeSuffix Read the source objects in chunks. (default 128M) --vfs-read-chunk-size-limit SizeSuffix If greater than --vfs-read-chunk-size, double the chunk size after each chunk read, until the limit is reached. 'off' is unlimited. (default off) --vfs-read-wait duration Time to wait for in-sequence read before seeking. (default 20ms) + --vfs-used-is-size rclone size Use the rclone size algorithm for Used size. --vfs-write-back duration Time to writeback files after last use when using cache. (default 5s) --vfs-write-wait duration Time to wait for in-sequence write before giving error. (default 1s) --volname string Set the volume name. Supported on Windows and OSX only. @@ -1785,17 +1799,42 @@ ffmpeg - | rclone rcat remote:path/to/file +

rclone selfupdate

+

Update the rclone binary.

+

Synopsis

+

This command downloads the latest release of rclone and replaces the currently running binary. The download is verified with a hashsum and cryptographically signed signature.

+

If used without flags (or with implied --stable flag), this command will install the latest stable release. However, some issues may be fixed (or features added) only in the latest beta release. In such cases you should run the command with the --beta flag, i.e. rclone selfupdate --beta. You can check in advance what version would be installed by adding the --check flag, then repeat the command without it when you are satisfied.

+

Sometimes the rclone team may recommend you a concrete beta or stable rclone release to troubleshoot your issue or add a bleeding edge feature. The --version VER flag, if given, will update to the concrete version instead of the latest one. If you omit micro version from VER (for example 1.53), the latest matching micro version will be used.

+

Upon successful update rclone will print a message that contains a previous version number. You will need it if you later decide to revert your update for some reason. Then you'll have to note the previous version and run the following command: rclone selfupdate [--beta] OLDVER. If the old version contains only dots and digits (for example v1.54.0) then it's a stable release so you won't need the --beta flag. Beta releases have an additional information similar to v1.54.0-beta.5111.06f1c0c61. (if you are a developer and use a locally built rclone, the version number will end with -DEV, you will have to rebuild it as it obvisously can't be distributed).

+

If you previously installed rclone via a package manager, the package may include local documentation or configure services. You may wish to update with the flag --package deb or --package rpm (whichever is correct for your OS) to update these too. This command with the default --package zip will update only the rclone executable so the local manual may become inaccurate after it.

+

The rclone mount command (https://rclone.org/commands/rclone_mount/) may or may not support extended FUSE options depending on the build and OS. selfupdate will refuse to update if the capability would be discarded.

+

Note: Windows forbids deletion of a currently running executable so this command will rename the old executable to 'rclone.old.exe' upon success.

+

Please note that this command was not available before rclone version 1.55. If it fails for you with the message unknown command "selfupdate" then you will need to update manually following the install instructions located at https://rclone.org/install/

+
rclone selfupdate [flags]
+

Options

+
      --beta             Install beta release.
+      --check            Check for latest release, do not download.
+  -h, --help             help for selfupdate
+      --output string    Save the downloaded binary at a given path (default: replace running binary)
+      --package string   Package format: zip|deb|rpm (default: zip)
+      --stable           Install stable release (this is the default)
+      --version string   Install the given rclone version (default: latest)
+

See the global flags page for global options not listed here.

+

SEE ALSO

+

rclone serve

Serve a remote over a protocol.

-

Synopsis

+

Synopsis

rclone serve is used to serve a remote over a given protocol. This command requires the use of a subcommand to specify the protocol, e.g.

rclone serve http remote:

Each subcommand has its own options which you can see in their help.

rclone serve <protocol> [opts] <remote> [flags]
-

Options

+

Options

  -h, --help   help for serve

See the global flags page for global options not listed here.

-

SEE ALSO

+

SEE ALSO

rclone serve dlna

Serve remote:path over DLNA

-

Synopsis

+

Synopsis

rclone serve dlna is a DLNA media server for media stored in an rclone remote. Many devices, such as the Xbox and PlayStation, can automatically discover this server in the LAN and play audio/video from it. VLC is also supported. Service discovery uses UDP multicast packets (SSDP) and will thus only work on LANs.

Rclone will list all files present in the remote, without filtering based on media formats or file extensions. Additionally, there is no media transcoding support. This means that some players might show files that they are not able to play back correctly.

Server options

@@ -1848,6 +1887,7 @@ ffmpeg - | rclone rcat remote:path/to/file

The cache has 4 different modes selected by --vfs-cache-mode. The higher the cache mode the more compatible rclone becomes at the cost of using disk space.

Note that files are written back to the remote only when they are closed and if they haven't been accessed for --vfs-write-back second. If rclone is quit or dies with files that haven't been uploaded, these will be uploaded next time rclone is run with the same flags.

If using --vfs-cache-max-size note that the cache may exceed this size for two reasons. Firstly because it is only checked every --vfs-cache-poll-interval. Secondly because open files cannot be evicted from the cache.

+

You should not run two copies of rclone using the same VFS cache with the same or overlapping remotes if using --vfs-cache-mode > off. This can potentially cause data corruption if you do. You can work around this by giving each rclone its own cache hierarchy with --cache-dir. You don't need to worry about this if the remotes in use don't overlap.

--vfs-cache-mode off

In this mode (the default) the cache will read directly from the remote and write directly to the remote without caching anything on disk.

This will mean some operations are not possible

@@ -1905,8 +1945,11 @@ ffmpeg - | rclone rcat remote:path/to/file

The user may specify a file name to open/delete/rename/etc with a case different than what is stored on mounted file system. If an argument refers to an existing file with exactly the same name, then the case of the existing file on the disk will be used. However, if a file name with exactly the same name is not found but a name differing only by case exists, rclone will transparently fixup the name. This fixup happens only when an existing file is requested. Case sensitivity of file names created anew by rclone is controlled by an underlying mounted file system.

Note that case sensitivity of the operating system running rclone (the target) may differ from case sensitivity of a file system mounted by rclone (the source). The flag controls whether "fixup" is performed to satisfy the target.

If the flag is not provided on the command line, then its default value depends on the operating system where rclone runs: "true" on Windows and macOS, "false" otherwise. If the flag is provided without a value, then it is "true".

+

Alternate report of used bytes

+

Some backends, most notably S3, do not report the amount of bytes used. If you need this information to be available when running df on the filesystem, then pass the flag --vfs-used-is-size to rclone. With this flag set, instead of relying on the backend to report this information, rclone will scan the whole remote similar to rclone size and compute the total used space itself.

+

WARNING. Contrary to rclone size, this flag ignores filters so that the result is accurate. However, this is very inefficient and may cost lots of API calls resulting in extra charges. Use it as a last resort and only with caching.

rclone serve dlna remote:path [flags]
-

Options

+

Options

      --addr string                            ip:port or :port to bind the DLNA http server to. (default ":7879")
       --dir-cache-time duration                Time to cache directory entries for. (default 5m0s)
       --dir-perms FileMode                     Directory permissions (default 0777)
@@ -1931,16 +1974,17 @@ ffmpeg - | rclone rcat remote:path/to/file
--vfs-read-chunk-size SizeSuffix Read the source objects in chunks. (default 128M) --vfs-read-chunk-size-limit SizeSuffix If greater than --vfs-read-chunk-size, double the chunk size after each chunk read, until the limit is reached. 'off' is unlimited. (default off) --vfs-read-wait duration Time to wait for in-sequence read before seeking. (default 20ms) + --vfs-used-is-size rclone size Use the rclone size algorithm for Used size. --vfs-write-back duration Time to writeback files after last use when using cache. (default 5s) --vfs-write-wait duration Time to wait for in-sequence write before giving error. (default 1s)

See the global flags page for global options not listed here.

-

SEE ALSO

+

SEE ALSO

rclone serve ftp

Serve remote:path over FTP.

-

Synopsis

+

Synopsis

rclone serve ftp implements a basic ftp server to serve the remote over FTP protocol. This can be viewed with a ftp client or you can make a remote of type ftp to read and write it.

Server options

Use --addr to specify which IP address and port the server should listen on, e.g. --addr 1.2.3.4:8000 or --addr :8080 to listen to all IPs. By default it only listens on localhost. You can use port :0 to let the OS choose an available port.

@@ -1982,6 +2026,7 @@ ffmpeg - | rclone rcat remote:path/to/file

The cache has 4 different modes selected by --vfs-cache-mode. The higher the cache mode the more compatible rclone becomes at the cost of using disk space.

Note that files are written back to the remote only when they are closed and if they haven't been accessed for --vfs-write-back second. If rclone is quit or dies with files that haven't been uploaded, these will be uploaded next time rclone is run with the same flags.

If using --vfs-cache-max-size note that the cache may exceed this size for two reasons. Firstly because it is only checked every --vfs-cache-poll-interval. Secondly because open files cannot be evicted from the cache.

+

You should not run two copies of rclone using the same VFS cache with the same or overlapping remotes if using --vfs-cache-mode > off. This can potentially cause data corruption if you do. You can work around this by giving each rclone its own cache hierarchy with --cache-dir. You don't need to worry about this if the remotes in use don't overlap.

--vfs-cache-mode off

In this mode (the default) the cache will read directly from the remote and write directly to the remote without caching anything on disk.

This will mean some operations are not possible

@@ -2039,6 +2084,9 @@ ffmpeg - | rclone rcat remote:path/to/file

The user may specify a file name to open/delete/rename/etc with a case different than what is stored on mounted file system. If an argument refers to an existing file with exactly the same name, then the case of the existing file on the disk will be used. However, if a file name with exactly the same name is not found but a name differing only by case exists, rclone will transparently fixup the name. This fixup happens only when an existing file is requested. Case sensitivity of file names created anew by rclone is controlled by an underlying mounted file system.

Note that case sensitivity of the operating system running rclone (the target) may differ from case sensitivity of a file system mounted by rclone (the source). The flag controls whether "fixup" is performed to satisfy the target.

If the flag is not provided on the command line, then its default value depends on the operating system where rclone runs: "true" on Windows and macOS, "false" otherwise. If the flag is provided without a value, then it is "true".

+

Alternate report of used bytes

+

Some backends, most notably S3, do not report the amount of bytes used. If you need this information to be available when running df on the filesystem, then pass the flag --vfs-used-is-size to rclone. With this flag set, instead of relying on the backend to report this information, rclone will scan the whole remote similar to rclone size and compute the total used space itself.

+

WARNING. Contrary to rclone size, this flag ignores filters so that the result is accurate. However, this is very inefficient and may cost lots of API calls resulting in extra charges. Use it as a last resort and only with caching.

Auth Proxy

If you supply the parameter --auth-proxy /path/to/program then rclone will use that program to generate backends on the fly which then are used to authenticate incoming requests. This uses a simple JSON based protocol with input on STDIN and output on STDOUT.

PLEASE NOTE: --auth-proxy and --authorized-keys cannot be used together, if --auth-proxy is set the authorized keys option will be ignored.

@@ -2070,7 +2118,7 @@ ffmpeg - | rclone rcat remote:path/to/file

Note that an internal cache is keyed on user so only use that for configuration, don't use pass or public_key. This also means that if a user's password or public-key is changed the cache will need to expire (which takes 5 mins) before it takes effect.

This can be used to build general purpose proxies to any kind of backend that rclone supports.

rclone serve ftp remote:path [flags]
-

Options

+

Options

      --addr string                            IPaddress:Port or :Port to bind server to. (default "localhost:2121")
       --auth-proxy string                      A program to use to create the backend from the auth.
       --cert string                            TLS PEM key (concatenation of certificate and CA certificate)
@@ -2100,16 +2148,17 @@ ffmpeg - | rclone rcat remote:path/to/file
--vfs-read-chunk-size SizeSuffix Read the source objects in chunks. (default 128M) --vfs-read-chunk-size-limit SizeSuffix If greater than --vfs-read-chunk-size, double the chunk size after each chunk read, until the limit is reached. 'off' is unlimited. (default off) --vfs-read-wait duration Time to wait for in-sequence read before seeking. (default 20ms) + --vfs-used-is-size rclone size Use the rclone size algorithm for Used size. --vfs-write-back duration Time to writeback files after last use when using cache. (default 5s) --vfs-write-wait duration Time to wait for in-sequence write before giving error. (default 1s)

See the global flags page for global options not listed here.

-

SEE ALSO

+

SEE ALSO

rclone serve http

Serve the remote over HTTP.

-

Synopsis

+

Synopsis

rclone serve http implements a basic web server to serve the remote over HTTP. This can be viewed in a web browser or you can make a remote of type http read from it.

You can use the filter flags (e.g. --include, --exclude) to control what is served.

The server will log errors. Use -v to see access logs.

@@ -2246,6 +2295,7 @@ htpasswd -B htpasswd anotherUser

The cache has 4 different modes selected by --vfs-cache-mode. The higher the cache mode the more compatible rclone becomes at the cost of using disk space.

Note that files are written back to the remote only when they are closed and if they haven't been accessed for --vfs-write-back second. If rclone is quit or dies with files that haven't been uploaded, these will be uploaded next time rclone is run with the same flags.

If using --vfs-cache-max-size note that the cache may exceed this size for two reasons. Firstly because it is only checked every --vfs-cache-poll-interval. Secondly because open files cannot be evicted from the cache.

+

You should not run two copies of rclone using the same VFS cache with the same or overlapping remotes if using --vfs-cache-mode > off. This can potentially cause data corruption if you do. You can work around this by giving each rclone its own cache hierarchy with --cache-dir. You don't need to worry about this if the remotes in use don't overlap.

--vfs-cache-mode off

In this mode (the default) the cache will read directly from the remote and write directly to the remote without caching anything on disk.

This will mean some operations are not possible

@@ -2303,8 +2353,11 @@ htpasswd -B htpasswd anotherUser

The user may specify a file name to open/delete/rename/etc with a case different than what is stored on mounted file system. If an argument refers to an existing file with exactly the same name, then the case of the existing file on the disk will be used. However, if a file name with exactly the same name is not found but a name differing only by case exists, rclone will transparently fixup the name. This fixup happens only when an existing file is requested. Case sensitivity of file names created anew by rclone is controlled by an underlying mounted file system.

Note that case sensitivity of the operating system running rclone (the target) may differ from case sensitivity of a file system mounted by rclone (the source). The flag controls whether "fixup" is performed to satisfy the target.

If the flag is not provided on the command line, then its default value depends on the operating system where rclone runs: "true" on Windows and macOS, "false" otherwise. If the flag is provided without a value, then it is "true".

+

Alternate report of used bytes

+

Some backends, most notably S3, do not report the amount of bytes used. If you need this information to be available when running df on the filesystem, then pass the flag --vfs-used-is-size to rclone. With this flag set, instead of relying on the backend to report this information, rclone will scan the whole remote similar to rclone size and compute the total used space itself.

+

WARNING. Contrary to rclone size, this flag ignores filters so that the result is accurate. However, this is very inefficient and may cost lots of API calls resulting in extra charges. Use it as a last resort and only with caching.

rclone serve http remote:path [flags]
-

Options

+

Options

      --addr string                            IPaddress:Port or :Port to bind server to. (default "localhost:8080")
       --baseurl string                         Prefix for URLs - leave blank for root.
       --cert string                            SSL PEM key (concatenation of certificate and CA certificate)
@@ -2339,16 +2392,17 @@ htpasswd -B htpasswd anotherUser
--vfs-read-chunk-size SizeSuffix Read the source objects in chunks. (default 128M) --vfs-read-chunk-size-limit SizeSuffix If greater than --vfs-read-chunk-size, double the chunk size after each chunk read, until the limit is reached. 'off' is unlimited. (default off) --vfs-read-wait duration Time to wait for in-sequence read before seeking. (default 20ms) + --vfs-used-is-size rclone size Use the rclone size algorithm for Used size. --vfs-write-back duration Time to writeback files after last use when using cache. (default 5s) --vfs-write-wait duration Time to wait for in-sequence write before giving error. (default 1s)

See the global flags page for global options not listed here.

-

SEE ALSO

+

SEE ALSO

rclone serve restic

Serve the remote for restic's REST API.

-

Synopsis

+

Synopsis

rclone serve restic implements restic's REST backend API over HTTP. This allows restic to use rclone as a data storage mechanism for cloud providers that restic does not support directly.

Restic is a command line program for doing backups.

The server will log errors. Use -v to see access logs.

@@ -2488,7 +2542,7 @@ htpasswd -B htpasswd anotherUser

By default this will serve over http. If you want you can serve over https. You will need to supply the --cert and --key flags. If you wish to do client side certificate validation then you will need to supply --client-ca also.

--cert should be either a PEM encoded certificate or a concatenation of that with the CA certificate. --key should be the PEM encoded private key and --client-ca should be the PEM encoded client certificate authority certificate.

rclone serve restic remote:path [flags]
-

Options

+

Options

      --addr string                     IPaddress:Port or :Port to bind server to. (default "localhost:8080")
       --append-only                     disallow deletion of repository data
       --baseurl string                  Prefix for URLs - leave blank for root.
@@ -2508,13 +2562,13 @@ htpasswd -B htpasswd anotherUser
--template string User Specified Template. --user string User name for authentication.

See the global flags page for global options not listed here.

-

SEE ALSO

+

SEE ALSO

rclone serve sftp

Serve the remote over SFTP.

-

Synopsis

+

Synopsis

rclone serve sftp implements an SFTP server to serve the remote over SFTP. This can be used with an SFTP client or you can make a remote of type sftp to use with it.

You can use the filter flags (e.g. --include, --exclude) to control what is served.

The server will log errors. Use -v to see access logs.

@@ -2558,6 +2612,7 @@ htpasswd -B htpasswd anotherUser

The cache has 4 different modes selected by --vfs-cache-mode. The higher the cache mode the more compatible rclone becomes at the cost of using disk space.

Note that files are written back to the remote only when they are closed and if they haven't been accessed for --vfs-write-back second. If rclone is quit or dies with files that haven't been uploaded, these will be uploaded next time rclone is run with the same flags.

If using --vfs-cache-max-size note that the cache may exceed this size for two reasons. Firstly because it is only checked every --vfs-cache-poll-interval. Secondly because open files cannot be evicted from the cache.

+

You should not run two copies of rclone using the same VFS cache with the same or overlapping remotes if using --vfs-cache-mode > off. This can potentially cause data corruption if you do. You can work around this by giving each rclone its own cache hierarchy with --cache-dir. You don't need to worry about this if the remotes in use don't overlap.

--vfs-cache-mode off

In this mode (the default) the cache will read directly from the remote and write directly to the remote without caching anything on disk.

This will mean some operations are not possible

@@ -2615,6 +2670,9 @@ htpasswd -B htpasswd anotherUser

The user may specify a file name to open/delete/rename/etc with a case different than what is stored on mounted file system. If an argument refers to an existing file with exactly the same name, then the case of the existing file on the disk will be used. However, if a file name with exactly the same name is not found but a name differing only by case exists, rclone will transparently fixup the name. This fixup happens only when an existing file is requested. Case sensitivity of file names created anew by rclone is controlled by an underlying mounted file system.

Note that case sensitivity of the operating system running rclone (the target) may differ from case sensitivity of a file system mounted by rclone (the source). The flag controls whether "fixup" is performed to satisfy the target.

If the flag is not provided on the command line, then its default value depends on the operating system where rclone runs: "true" on Windows and macOS, "false" otherwise. If the flag is provided without a value, then it is "true".

+

Alternate report of used bytes

+

Some backends, most notably S3, do not report the amount of bytes used. If you need this information to be available when running df on the filesystem, then pass the flag --vfs-used-is-size to rclone. With this flag set, instead of relying on the backend to report this information, rclone will scan the whole remote similar to rclone size and compute the total used space itself.

+

WARNING. Contrary to rclone size, this flag ignores filters so that the result is accurate. However, this is very inefficient and may cost lots of API calls resulting in extra charges. Use it as a last resort and only with caching.

Auth Proxy

If you supply the parameter --auth-proxy /path/to/program then rclone will use that program to generate backends on the fly which then are used to authenticate incoming requests. This uses a simple JSON based protocol with input on STDIN and output on STDOUT.

PLEASE NOTE: --auth-proxy and --authorized-keys cannot be used together, if --auth-proxy is set the authorized keys option will be ignored.

@@ -2646,7 +2704,7 @@ htpasswd -B htpasswd anotherUser

Note that an internal cache is keyed on user so only use that for configuration, don't use pass or public_key. This also means that if a user's password or public-key is changed the cache will need to expire (which takes 5 mins) before it takes effect.

This can be used to build general purpose proxies to any kind of backend that rclone supports.

rclone serve sftp remote:path [flags]
-

Options

+

Options

      --addr string                            IPaddress:Port or :Port to bind server to. (default "localhost:2022")
       --auth-proxy string                      A program to use to create the backend from the auth.
       --authorized-keys string                 Authorized keys file (default "~/.ssh/authorized_keys")
@@ -2675,16 +2733,17 @@ htpasswd -B htpasswd anotherUser
--vfs-read-chunk-size SizeSuffix Read the source objects in chunks. (default 128M) --vfs-read-chunk-size-limit SizeSuffix If greater than --vfs-read-chunk-size, double the chunk size after each chunk read, until the limit is reached. 'off' is unlimited. (default off) --vfs-read-wait duration Time to wait for in-sequence read before seeking. (default 20ms) + --vfs-used-is-size rclone size Use the rclone size algorithm for Used size. --vfs-write-back duration Time to writeback files after last use when using cache. (default 5s) --vfs-write-wait duration Time to wait for in-sequence write before giving error. (default 1s)

See the global flags page for global options not listed here.

-

SEE ALSO

+

SEE ALSO

rclone serve webdav

Serve remote:path over webdav.

-

Synopsis

+

Synopsis

rclone serve webdav implements a basic webdav server to serve the remote over HTTP via the webdav protocol. This can be viewed with a webdav client, through a web browser, or you can make a remote of type webdav to read and write it.

Webdav options

--etag-hash

@@ -2823,6 +2882,7 @@ htpasswd -B htpasswd anotherUser

The cache has 4 different modes selected by --vfs-cache-mode. The higher the cache mode the more compatible rclone becomes at the cost of using disk space.

Note that files are written back to the remote only when they are closed and if they haven't been accessed for --vfs-write-back second. If rclone is quit or dies with files that haven't been uploaded, these will be uploaded next time rclone is run with the same flags.

If using --vfs-cache-max-size note that the cache may exceed this size for two reasons. Firstly because it is only checked every --vfs-cache-poll-interval. Secondly because open files cannot be evicted from the cache.

+

You should not run two copies of rclone using the same VFS cache with the same or overlapping remotes if using --vfs-cache-mode > off. This can potentially cause data corruption if you do. You can work around this by giving each rclone its own cache hierarchy with --cache-dir. You don't need to worry about this if the remotes in use don't overlap.

--vfs-cache-mode off

In this mode (the default) the cache will read directly from the remote and write directly to the remote without caching anything on disk.

This will mean some operations are not possible

@@ -2880,6 +2940,9 @@ htpasswd -B htpasswd anotherUser

The user may specify a file name to open/delete/rename/etc with a case different than what is stored on mounted file system. If an argument refers to an existing file with exactly the same name, then the case of the existing file on the disk will be used. However, if a file name with exactly the same name is not found but a name differing only by case exists, rclone will transparently fixup the name. This fixup happens only when an existing file is requested. Case sensitivity of file names created anew by rclone is controlled by an underlying mounted file system.

Note that case sensitivity of the operating system running rclone (the target) may differ from case sensitivity of a file system mounted by rclone (the source). The flag controls whether "fixup" is performed to satisfy the target.

If the flag is not provided on the command line, then its default value depends on the operating system where rclone runs: "true" on Windows and macOS, "false" otherwise. If the flag is provided without a value, then it is "true".

+

Alternate report of used bytes

+

Some backends, most notably S3, do not report the amount of bytes used. If you need this information to be available when running df on the filesystem, then pass the flag --vfs-used-is-size to rclone. With this flag set, instead of relying on the backend to report this information, rclone will scan the whole remote similar to rclone size and compute the total used space itself.

+

WARNING. Contrary to rclone size, this flag ignores filters so that the result is accurate. However, this is very inefficient and may cost lots of API calls resulting in extra charges. Use it as a last resort and only with caching.

Auth Proxy

If you supply the parameter --auth-proxy /path/to/program then rclone will use that program to generate backends on the fly which then are used to authenticate incoming requests. This uses a simple JSON based protocol with input on STDIN and output on STDOUT.

PLEASE NOTE: --auth-proxy and --authorized-keys cannot be used together, if --auth-proxy is set the authorized keys option will be ignored.

@@ -2911,7 +2974,7 @@ htpasswd -B htpasswd anotherUser

Note that an internal cache is keyed on user so only use that for configuration, don't use pass or public_key. This also means that if a user's password or public-key is changed the cache will need to expire (which takes 5 mins) before it takes effect.

This can be used to build general purpose proxies to any kind of backend that rclone supports.

rclone serve webdav remote:path [flags]
-

Options

+

Options

      --addr string                            IPaddress:Port or :Port to bind server to. (default "localhost:8080")
       --auth-proxy string                      A program to use to create the backend from the auth.
       --baseurl string                         Prefix for URLs - leave blank for root.
@@ -2949,16 +3012,17 @@ htpasswd -B htpasswd anotherUser
--vfs-read-chunk-size SizeSuffix Read the source objects in chunks. (default 128M) --vfs-read-chunk-size-limit SizeSuffix If greater than --vfs-read-chunk-size, double the chunk size after each chunk read, until the limit is reached. 'off' is unlimited. (default off) --vfs-read-wait duration Time to wait for in-sequence read before seeking. (default 20ms) + --vfs-used-is-size rclone size Use the rclone size algorithm for Used size. --vfs-write-back duration Time to writeback files after last use when using cache. (default 5s) --vfs-write-wait duration Time to wait for in-sequence write before giving error. (default 1s)

See the global flags page for global options not listed here.

-

SEE ALSO

+

SEE ALSO

rclone settier

Changes storage class/tier of objects in remote.

-

Synopsis

+

Synopsis

rclone settier changes storage tier or class at remote if supported. Few cloud storage services provides different storage classes on objects, for example AWS S3 and Glacier, Azure Blob storage - Hot, Cool and Archive, Google Cloud Storage, Regional Storage, Nearline, Coldline etc.

Note that, certain tier changes make objects not available to access immediately. For example tiering to archive in azure blob storage makes objects in frozen state, user can restore by setting tier to Hot/Cool, similarly S3 to Glacier makes object inaccessible.true

You can use it to tier single object

@@ -2968,16 +3032,96 @@ htpasswd -B htpasswd anotherUser

Or just provide remote directory and all files in directory will be tiered

rclone settier tier remote:path/dir
rclone settier tier remote:path [flags]
-

Options

+

Options

  -h, --help   help for settier

See the global flags page for global options not listed here.

-

SEE ALSO

+

SEE ALSO

+

rclone test

+

Run a test command

+

Synopsis

+

Rclone test is used to run test commands.

+

Select which test comand you want with the subcommand, eg

+
rclone test memory remote:
+

Each subcommand has its own options which you can see in their help.

+

NB Be careful running these commands, they may do strange things so reading their documentation first is recommended.

+

Options

+
  -h, --help   help for test
+

See the global flags page for global options not listed here.

+

SEE ALSO

+ +

rclone test histogram

+

Makes a histogram of file name characters.

+

Synopsis

+

This command outputs JSON which shows the histogram of characters used in filenames in the remote:path specified.

+

The data doesn't contain any identifying information but is useful for the rclone developers when developing filename compression.

+
rclone test histogram [remote:path] [flags]
+

Options

+
  -h, --help   help for histogram
+

See the global flags page for global options not listed here.

+

SEE ALSO

+ +

rclone test info

+

Discovers file name or other limitations for paths.

+

Synopsis

+

rclone info discovers what filenames and upload methods are possible to write to the paths passed in and how long they can be. It can take some time. It will write test files into the remote:path passed in. It outputs a bit of go code for each one.

+

NB this can create undeletable files and other hazards - use with care

+
rclone test info [remote:path]+ [flags]
+

Options

+
      --all                    Run all tests.
+      --check-control          Check control characters.
+      --check-length           Check max filename length.
+      --check-normalization    Check UTF-8 Normalization.
+      --check-streaming        Check uploads with indeterminate file size.
+  -h, --help                   help for info
+      --upload-wait duration   Wait after writing a file.
+      --write-json string      Write results to file.
+

See the global flags page for global options not listed here.

+

SEE ALSO

+ +

rclone test makefiles

+Make a random file hierarchy in + +
rclone test makefiles <dir> [flags]
+

Options

+
      --files int                  Number of files to create (default 1000)
+      --files-per-directory int    Average number of files per directory (default 10)
+  -h, --help                       help for makefiles
+      --max-file-size SizeSuffix   Maximum size of files to create (default 100)
+      --max-name-length int        Maximum size of file names (default 12)
+      --min-file-size SizeSuffix   Minimum size of file to create
+      --min-name-length int        Minimum size of file names (default 4)
+

See the global flags page for global options not listed here.

+

SEE ALSO

+ +

rclone test memory

+

Load all the objects at remote:path into memory and report memory stats.

+
rclone test memory remote:path [flags]
+

Options

+
  -h, --help   help for memory
+

See the global flags page for global options not listed here.

+

SEE ALSO

+

rclone touch

Create new file or change file modification time.

-

Synopsis

+

Synopsis

Set the modification time on object(s) as specified by remote:path to have the current time.

If remote:path does not exist then a zero sized object will be created unless the --no-create flag is provided.

If --timestamp is used then it will set the modification time to that time instead of the current time. Times may be specified as one of:

@@ -2988,19 +3132,19 @@ htpasswd -B htpasswd anotherUser

Note that --timestamp is in UTC if you want local time then add the --localtime flag.

rclone touch remote:path [flags]
-

Options

+

Options

  -h, --help               help for touch
       --localtime          Use localtime for timestamp, not UTC.
   -C, --no-create          Do not create the file if it does not exist.
   -t, --timestamp string   Use specified time instead of the current time of day.

See the global flags page for global options not listed here.

-

SEE ALSO

+

SEE ALSO

rclone tree

List the contents of the remote in a tree like fashion.

-

Synopsis

+

Synopsis

rclone tree lists the contents of a remote in a similar way to the unix tree command.

For example

$ rclone tree remote:path
@@ -3016,7 +3160,7 @@ htpasswd -B htpasswd anotherUser

You can use any of the filtering options with the tree command (e.g. --include and --exclude). You can also use --fast-list.

The tree command has many options for controlling the listing which are compatible with the tree command. Note that not all of them have short options as they conflict with rclone's short options.

rclone tree remote:path [flags]
-

Options

+

Options

  -a, --all             All files are listed (list . files too).
   -C, --color           Turn colorization on always.
   -d, --dirs-only       List directories only.
@@ -3039,7 +3183,7 @@ htpasswd -B htpasswd anotherUser
-U, --unsorted Leave files unsorted. --version Sort files alphanumerically by version.

See the global flags page for global options not listed here.

-

SEE ALSO

+

SEE ALSO

@@ -3057,7 +3201,7 @@ htpasswd -B htpasswd anotherUser

The syntax of the paths passed to the rclone command are as follows.

/path/to/dir

This refers to the local file system.

-

On Windows only \ may be used instead of / in local paths only, non local paths must use /.

+

On Windows \ may be used instead of / in local paths only, non local paths must use /. See local filesystem documentation for more about Windows-specific paths.

These paths needn't start with a leading / - if they don't then they will be relative to the current directory.

remote:path/to/dir

This refers to a directory path/to/dir on remote: as defined in the config file (configured with rclone config).

@@ -3074,6 +3218,47 @@ htpasswd -B htpasswd anotherUser

To copy files and directories in https://example.com/path/to/dir to /tmp/dir.

rclone copy --sftp-host example.com :sftp:path/to/dir /tmp/dir

To copy files and directories from example.com in the relative directory path/to/dir to /tmp/dir using sftp.

+

Connection strings

+

The above examples can also be written using a connection string syntax, so instead of providing the arguments as command line parameters --http-url https://pub.rclone.org they are provided as part of the remote specification as a kind of connection string.

+
rclone lsd ":http,url='https://pub.rclone.org':"
+rclone lsf ":http,url='https://example.com':path/to/dir"
+rclone copy ":http,url='https://example.com':path/to/dir" /tmp/dir
+rclone copy :sftp,host=example.com:path/to/dir /tmp/dir
+

These can apply to modify existing remotes as well as create new remotes with the on the fly syntax. This example is equivalent to adding the --drive-shared-with-me parameter to the remote gdrive:.

+
rclone lsf "gdrive,shared_with_me:path/to/dir"
+

The major advantage to using the connection string style syntax is that it only applies the the remote, not to all the remotes of that type of the command line. A common confusion is this attempt to copy a file shared on google drive to the normal drive which does not work because the --drive-shared-with-me flag applies to both the source and the destination.

+
rclone copy --drive-shared-with-me gdrive:shared-file.txt gdrive:
+

However using the connection string syntax, this does work.

+
rclone copy "gdrive,shared_with_me:shared-file.txt" gdrive:
+

The connection strings have the following syntax

+
remote,parameter=value,parameter2=value2:path/to/dir
+:backend,parameter=value,parameter2=value2:path/to/dir
+

If the parameter has a : or , then it must be placed in quotes " or ', so

+
remote,parameter="colon:value",parameter2="comma,value":path/to/dir
+:backend,parameter='colon:value',parameter2='comma,value':path/to/dir
+

If a quoted value needs to include that quote, then it should be doubled, so

+
remote,parameter="with""quote",parameter2='with''quote':path/to/dir
+

This will make parameter be with"quote and parameter2 be with'quote.

+

If you leave off the =parameter then rclone will substitute =true which works very well with flags. For example to use s3 configured in the environment you could use:

+
rclone lsd :s3,env_auth:
+

Which is equivalent to

+
rclone lsd :s3,env_auth=true:
+

Note that on the command line you might need to surround these connection strings with " or ' to stop the shell interpreting any special characters within them.

+

If you are a shell master then you'll know which strings are OK and which aren't, but if you aren't sure then enclose them in " and use ' as the inside quote. This syntax works on all OSes.

+
rclone copy ":http,url='https://example.com':path/to/dir" /tmp/dir
+

On Linux/macOS some characters are still interpreted inside " strings in the shell (notably \ and $ and ") so if your strings contain those you can swap the roles of " and ' thus. (This syntax does not work on Windows.)

+
rclone copy ':http,url="https://example.com":path/to/dir' /tmp/dir
+

Connection strings, config and logging

+

If you supply extra configuration to a backend by command line flag, environment variable or connection string then rclone will add a suffix based on the hash of the config to the name of the remote, eg

+
rclone -vv lsf --s3-chunk-size 20M s3:
+

Has the log message

+
DEBUG : s3: detected overridden config - adding "{Srj1p}" suffix to name
+

This is so rclone can tell the modified remote apart from the unmodified remote when caching the backends.

+

This should only be noticeable in the logs.

+

This means that on the fly backends such as

+
rclone -vv lsf :s3,env_auth:
+

Will get their own names

+
DEBUG : :s3: detected overridden config - adding "{YTu53}" suffix to name

Valid remote names

An example of a typical timetable to avoid link saturation during daytime working hours could be:

--bwlimit "08:00,512k 12:00,10M 13:00,512k 18:00,30M 23:00,off"

-

In this example, the transfer bandwidth will be set to 512kBytes/sec at 8am every day. At noon, it will rise to 10Mbytes/s, and drop back to 512kBytes/sec at 1pm. At 6pm, the bandwidth limit will be set to 30MBytes/s, and at 11pm it will be completely disabled (full speed). Anything between 11pm and 8am will remain unlimited.

+

In this example, the transfer bandwidth will be set to 512kBytes/sec at 8am every day. At noon, it will rise to 10MByte/s, and drop back to 512kBytes/sec at 1pm. At 6pm, the bandwidth limit will be set to 30MByte/s, and at 11pm it will be completely disabled (full speed). Anything between 11pm and 8am will remain unlimited.

An example of timetable with WEEKDAY could be:

--bwlimit "Mon-00:00,512 Fri-23:59,10M Sat-10:00,1M Sun-20:00,off"

-

It means that, the transfer bandwidth will be set to 512kBytes/sec on Monday. It will rise to 10Mbytes/s before the end of Friday. At 10:00 on Saturday it will be set to 1Mbyte/s. From 20:00 on Sunday it will be unlimited.

+

It means that, the transfer bandwidth will be set to 512kBytes/sec on Monday. It will rise to 10MByte/s before the end of Friday. At 10:00 on Saturday it will be set to 1MByte/s. From 20:00 on Sunday it will be unlimited.

Timeslots without WEEKDAY are extended to the whole week. So this example:

--bwlimit "Mon-00:00,512 12:00,1M Sun-20:00,off"

Is equivalent to this:

@@ -3189,11 +3374,21 @@ rclone sync -i /path/to/files remote:current-backup

You must use the same remote as the destination of the sync. The compare directory must not overlap the destination directory.

See --copy-dest and --backup-dir.

--config=CONFIG_FILE

-

Specify the location of the rclone config file.

+

Specify the location of the rclone configuration file.

Normally the config file is in your home directory as a file called .config/rclone/rclone.conf (or .rclone.conf if created with an older version). If $XDG_CONFIG_HOME is set it will be at $XDG_CONFIG_HOME/rclone/rclone.conf.

If there is a file rclone.conf in the same directory as the rclone executable it will be preferred. This file must be created manually for Rclone to use it, it will never be created automatically.

If you run rclone config file you will see where the default location is for you.

Use this flag to override the config location, e.g. rclone --config=".myconfig" .config.

+

If the location is set to empty string "" or the special value /notfound, or the os null device represented by value NUL on Windows and /dev/null on Unix systems, then rclone will keep the config file in memory only.

+

The file format is basic INI: Sections of text, led by a [section] header and followed by key=value entries on separate lines. In rclone each remote is represented by its own section, where the section name defines the name of the remote. Options are specified as the key=value entries, where the key is the option name without the --backend- prefix, in lowercase and with _ instead of -. E.g. option --mega-hard-delete corresponds to key hard_delete. Only backend options can be specified. A special, and required, key type identifies the storage system, where the value is the internal lowercase name as returned by command rclone help backends. Comments are indicated by ; or # at the beginning of a line.

+

Example:

+
[megaremote]
+type = mega
+user = you@example.com
+pass = PDPcQVVjVtzFY-GTdDFozqBhTdsPg3qH
+

Note that passwords are in obscured form. Also, many storage systems uses token-based authentication instead of passwords, and this requires additional steps. It is easier, and safer, to use the interactive command rclone config instead of manually editing the configuration file.

+

The configuration file will typically contain login information, and should therefore have restricted permissions so that only the current user can read it. Rclone tries to ensure this when it writes the file. You may also choose to encrypt the file.

+

When token-based authentication are used, the configuration file must be writable, because rclone needs to update the tokens inside it.

--contimeout=TIME

Set the connection timeout. This should be in go time format which looks like 5s for 5 seconds, 10m for 10 minutes, or 3h30m.

The connection timeout is the amount of time rclone will wait for a connection to go through to a remote object storage system. It is 1m by default.

@@ -3211,6 +3406,12 @@ rclone sync -i /path/to/files remote:current-backup
--disable help

See the overview features and optional features to get an idea of which feature does what.

This flag can be useful for debugging and in exceptional circumstances (e.g. Google Drive limiting the total volume of Server Side Copies to 100GB/day).

+

--dscp VALUE

+

Specify a DSCP value or name to use in connections. This could help QoS system to identify traffic class. BE, EF, DF, LE, CSx and AFxx are allowed.

+

See the description of differentiated services to get an idea of this field. Setting this to 1 (LE) to identify the flow to SCAVENGER class can avoid occupying too much bandwidth in a network with DiffServ support (RFC 8622).

+

For example, if you configured QoS on router to handle LE properly. Running:

+
rclone copy --dscp LE from:/from to:/to
+

would make the priority lower than usual internet flows.

-n, --dry-run

Do a trial run with no permanent changes. Use this to see what rclone would do without actually doing it. Useful when setting up the sync command which deletes files in the destination.

--expect-continue-timeout=TIME

@@ -3221,6 +3422,12 @@ rclone sync -i /path/to/files remote:current-backup

By default, rclone will exit with return code 0 if there were no errors.

This option allows rclone to return exit code 9 if no files were transferred between the source and destination. This allows using rclone in scripts, and triggering follow-on actions if data was copied, or skipping if not.

NB: Enabling this option turns a usually non-fatal error into a potentially fatal one - please check and adjust your scripts accordingly!

+

--fs-cache-expire-duration=TIME

+

When using rclone via the API rclone caches created remotes for 5 minutes by default in the "fs cache". This means that if you do repeated actions on the same remote then rclone won't have to build it again from scratch, which makes it more efficient.

+

This flag sets the time that the remotes are cached for. If you set it to 0 (or negative) then rclone won't cache the remotes at all.

+

Note that if you use some flags, eg --backup-dir and if this is set to 0 rclone may build two remotes (one for the source or destination and one for the --backup-dir where it may have only built one before.

+

--fs-cache-expire-interval=TIME

+

This controls how often rclone checks for cached remotes to expire. See the --fs-cache-expire-duration documentation above for more info. The default is 60s, set to 0 to disable expiry.

Add an HTTP header for all transactions. The flag can be repeated to add multiple headers.

If you want to add headers only for uploads use --header-upload and if you want to add headers only for downloads use --header-download.

@@ -3574,7 +3781,7 @@ y/n/s/!/q> n

This option defaults to false.

This should be used only for testing.

Configuration Encryption

-

Your configuration file contains information for logging in to your cloud services. This means that you should keep your .rclone.conf file in a secure location.

+

Your configuration file contains information for logging in to your cloud services. This means that you should keep your rclone.conf file in a secure location.

If you are in an environment where that isn't possible, you can add a password to your configuration. This means that you will have to supply the password every time you start rclone.

To add a password to your rclone configuration, execute rclone config.

>rclone config
@@ -3619,6 +3826,7 @@ export RCLONE_CONFIG_PASS
export RCLONE_PASSWORD_COMMAND="pass rclone/config"

If the passwordstore password manager holds the password for the rclone configuration, using the script method means the password is primarily protected by the passwordstore system, and is never embedded in the clear in scripts, nor available for examination using the standard commands available. It is quite possible with long running rclone sessions for copies of passwords to be innocently captured in log files or terminal scroll buffers, etc. Using the script method of supplying the password enhances the security of the config password considerably.

If you are running rclone inside a script, unless you are using the --password-command method, you might want to disable password prompts. To do that, pass the parameter --ask-password=false to rclone. This will make rclone fail instead of asking for a password if RCLONE_CONFIG_PASS doesn't contain a valid password, and --password-command has not been supplied.

+

Some rclone commands, such as genautocomplete, do not require configuration. Nevertheless, rclone will read any configuration file found according to the rules described above. If an encrypted configuration file is found, this means you will be prompted for password (unless using --password-command). To avoid this, you can bypass the loading of the configuration file by overriding the location with an empty string "" or the special value /notfound, or the os null device represented by value NUL on Windows and /dev/null on Unix systems (before rclone version 1.55 only this null device alternative was supported). E.g. rclone --config="" genautocomplete bash.

Developer options

These options are useful when developing or debugging rclone. There are also some more remote specific options which aren't documented here which are used for testing. These start with remote name e.g. --drive-test-option - see the docs for the remote in question.

--cpuprofile=FILE

@@ -3703,14 +3911,14 @@ export RCLONE_CONFIG_PASS

Environment Variables

Rclone can be configured entirely using environment variables. These can be used to set defaults for options or config file entries.

-

Options

+

Options

Every option in rclone can have its default set by environment variable.

To find the name of the environment variable, first, take the long option name, strip the leading --, change - to _, make upper case and prepend RCLONE_.

For example, to always set --stats 5s, set the environment variable RCLONE_STATS=5s. If you set stats on the command line this will override the environment variable setting.

Or to always use the trash in drive --drive-use-trash, set RCLONE_DRIVE_USE_TRASH=true.

The same parser is used for the options and the environment variables so they take exactly the same form.

Config file

-

You can set defaults for values in the config file on an individual remote basis. If you want to use this feature, you will need to discover the name of the config items that you want. The easiest way is to run through rclone config by hand, then look in the config file to see what the values are (the config file can be found by looking at the help for --config in rclone help).

+

You can set defaults for values in the config file on an individual remote basis. The names of the config items are documented in the page for each backend.

To find the name of the environment variable, you need to set, take RCLONE_CONFIG_ + name of remote + _ + name of config file option and make it all uppercase.

For example, to configure an S3 remote named mys3: without a config file (using unix ways of setting environment variables):

$ export RCLONE_CONFIG_MYS3_TYPE=s3
@@ -3721,6 +3929,8 @@ $ rclone lsd MYS3:
 $ rclone listremotes | grep mys3
 mys3:

Note that if you want to create a remote using environment variables you must create the ..._TYPE variable as above.

+

Note also that now rclone has connectionstrings, it is probably easier to use those instead which makes the above example

+
rclone lsd :s3,access_key_id=XXX,secret_access_key=XXX:

Precedence

The various different methods of backend configuration are read in this order and the first one with a value is used.

debug/set-block-profile-rate: Set runtime.SetBlockProfileRate for blocking profiling.

SetBlockProfileRate controls the fraction of goroutine blocking events that are reported in the blocking profile. The profiler aims to sample an average of one blocking event per rate nanoseconds spent blocked.

@@ -4622,6 +4916,14 @@ OR
  • previousRate - int
+

fscache/clear: Clear the Fs cache.

+

This clears the fs cache. This is where remotes created from backends are cached for a short while to make repeated rc calls more efficient.

+

If you change the parameters of a backend then you may want to call this to clear an existing remote out of the cache before re-creating it.

+

Authentication is required for this call.

+

fscache/entries: Returns the number of entries in the fs cache.

+

This returns the number of entries in the fs cache.

+

Returns - entries - number of items in the cache

+

Authentication is required for this call.

job/list: Lists the IDs of the running jobs

Parameters - None

Results

@@ -4902,8 +5204,14 @@ rclone rc mount/mount fs=TestDrive: mountPoint=/mnt/tmp vfsOpt='{"Cache

Authentication is required for this call.

options/blocks: List all the option blocks

Returns - options - a list of the options block names

-

options/get: Get all the options

+

options/get: Get all the global options

Returns an object where keys are option block names and values are an object with the current option values in.

+

Note that these are the global options which are unaffected by use of the _config and _filter parameters. If you wish to read the parameters set in _config then use options/config and for _filter use options/filter.

+

This shows the internal names of the option within rclone which should map to the external options very easily with a few exceptions.

+

options/local: Get the currently active config for this call

+

Returns an object with the keys "config" and "filter". The "config" key contains the local config and the "filter" key contains the local filters.

+

Note that these are the local options specific to this rc call. If _config was not supplied then they will be the global options. Likewise with "_filter".

+

This call is mostly useful for seeing if _config and _filter passing is working.

This shows the internal names of the option within rclone which should map to the external options very easily with a few exceptions.

options/set: Set an option

Parameters

@@ -4916,12 +5224,13 @@ rclone rc mount/mount fs=TestDrive: mountPoint=/mnt/tmp vfsOpt='{"Cache

Repeated as often as required.

Only supply the options you wish to change. If an option is unknown it will be silently ignored. Not all options will have an effect when changed like this.

For example:

-

This sets DEBUG level logs (-vv)

-
rclone rc options/set --json '{"main": {"LogLevel": 8}}'
+

This sets DEBUG level logs (-vv) (these can be set by number or string)

+
rclone rc options/set --json '{"main": {"LogLevel": "DEBUG"}}'
+rclone rc options/set --json '{"main": {"LogLevel": 8}}'

And this sets INFO level logs (-v)

-
rclone rc options/set --json '{"main": {"LogLevel": 7}}'
+
rclone rc options/set --json '{"main": {"LogLevel": "INFO"}}'

And this sets NOTICE level logs (normal without -v)

-
rclone rc options/set --json '{"main": {"LogLevel": 6}}'
+
rclone rc options/set --json '{"main": {"LogLevel": "NOTICE"}}'

pluginsctl/addPlugin: Add a plugin using url

used for adding a plugin to the webgui

This takes the following parameters

@@ -4997,6 +5306,7 @@ rclone rc mount/mount fs=TestDrive: mountPoint=/mnt/tmp vfsOpt='{"Cache
  • srcFs - a remote name string e.g. "drive:src" for the source
  • dstFs - a remote name string e.g. "drive:dst" for the destination
  • +
  • createEmptySrcDirs - create empty src directories on destination if set

See the copy command command for more information on the above.

Authentication is required for this call.

@@ -5005,6 +5315,7 @@ rclone rc mount/mount fs=TestDrive: mountPoint=/mnt/tmp vfsOpt='{"Cache
  • srcFs - a remote name string e.g. "drive:src" for the source
  • dstFs - a remote name string e.g. "drive:dst" for the destination
  • +
  • createEmptySrcDirs - create empty src directories on destination if set
  • deleteEmptySrcDirs - delete empty src directories if set

See the move command command for more information on the above.

@@ -5014,6 +5325,7 @@ rclone rc mount/mount fs=TestDrive: mountPoint=/mnt/tmp vfsOpt='{"Cache
  • srcFs - a remote name string e.g. "drive:src" for the source
  • dstFs - a remote name string e.g. "drive:dst" for the destination
  • +
  • createEmptySrcDirs - create empty src directories on destination if set

See the sync command command for more information on the above.

Authentication is required for this call.

@@ -5867,13 +6179,13 @@ Showing nodes accounting for 1537.03kB, 100% of 1537.03kB total 1Fichier No +Yes +Yes No No No No -No -No -No +Yes No Yes @@ -5883,10 +6195,10 @@ Showing nodes accounting for 1537.03kB, 100% of 1537.03kB total No Yes Yes -No #575 No No -No #2178 +No +No No Yes @@ -5899,7 +6211,7 @@ Showing nodes accounting for 1537.03kB, 100% of 1537.03kB total Yes Yes Yes -No #2178 +Yes No No @@ -5926,7 +6238,7 @@ Showing nodes accounting for 1537.03kB, 100% of 1537.03kB total No Yes Yes -No +Yes Yes @@ -5948,7 +6260,7 @@ Showing nodes accounting for 1537.03kB, 100% of 1537.03kB total Yes Yes Yes -No #575 +No No Yes Yes @@ -5961,7 +6273,7 @@ Showing nodes accounting for 1537.03kB, 100% of 1537.03kB total Yes Yes Yes -No +Yes No No No @@ -5977,7 +6289,7 @@ Showing nodes accounting for 1537.03kB, 100% of 1537.03kB total No No Yes -No #2178 +No No Yes @@ -5990,7 +6302,7 @@ Showing nodes accounting for 1537.03kB, 100% of 1537.03kB total No Yes Yes -No #2178 +No No No @@ -6042,7 +6354,7 @@ Showing nodes accounting for 1537.03kB, 100% of 1537.03kB total No No No -No #2178 +No No Yes @@ -6055,7 +6367,7 @@ Showing nodes accounting for 1537.03kB, 100% of 1537.03kB total No Yes Yes -No #2178 +No Yes No @@ -6094,7 +6406,7 @@ Showing nodes accounting for 1537.03kB, 100% of 1537.03kB total Yes No No -No #2178 +Yes Yes Yes @@ -6120,7 +6432,7 @@ Showing nodes accounting for 1537.03kB, 100% of 1537.03kB total No Yes Yes -No #2178 +No No No @@ -6159,7 +6471,7 @@ Showing nodes accounting for 1537.03kB, 100% of 1537.03kB total No Yes Yes -No #2178 +No Yes No @@ -6198,7 +6510,7 @@ Showing nodes accounting for 1537.03kB, 100% of 1537.03kB total Yes No Yes -No #2178 +No Yes Yes @@ -6211,7 +6523,7 @@ Showing nodes accounting for 1537.03kB, 100% of 1537.03kB total Yes Yes No -No #2178 +No No No @@ -6237,7 +6549,7 @@ Showing nodes accounting for 1537.03kB, 100% of 1537.03kB total No No Yes -No #2178 +No Yes Yes @@ -6276,7 +6588,7 @@ Showing nodes accounting for 1537.03kB, 100% of 1537.03kB total No No Yes ‡ -No #2178 +No Yes Yes @@ -6368,10 +6680,10 @@ Showing nodes accounting for 1537.03kB, 100% of 1537.03kB total -c, --checksum Skip based on checksum (if available) & size, not mod-time & size --client-cert string Client SSL certificate (PEM) for mutual TLS auth --client-key string Client SSL private key (PEM) for mutual TLS auth - --compare-dest string Include additional server-side path during comparison. + --compare-dest stringArray Include additional comma separated server-side paths during comparison. --config string Config file. (default "$HOME/.config/rclone/rclone.conf") --contimeout duration Connect timeout (default 1m0s) - --copy-dest string Implies --compare-dest but also copies files from path into destination. + --copy-dest stringArray Implies --compare-dest but also copies files from paths into destination. --cpuprofile string Write cpu profile to file --cutoff-mode string Mode to stop transfers when reaching the max transfer limit HARD|SOFT|CAUTIOUS (default "HARD") --delete-after When synchronizing, delete files on destination after transferring (default) @@ -6380,6 +6692,7 @@ Showing nodes accounting for 1537.03kB, 100% of 1537.03kB total --delete-excluded Delete files on dest excluded from sync --disable string Disable a comma separated list of features. Use help to see a list. -n, --dry-run Do a trial run with no permanent changes + --dscp string Set DSCP value to connections. Can be value or names, eg. CS1, LE, DF, AF21. --dump DumpFlags List of items to dump from: headers,bodies,requests,responses,auth,filters,goroutines,openfiles --dump-bodies Dump HTTP headers and bodies - may contain sensitive info --dump-headers Dump HTTP headers - may contain sensitive info @@ -6393,6 +6706,8 @@ Showing nodes accounting for 1537.03kB, 100% of 1537.03kB total --files-from-raw stringArray Read list of source-file names from file without any processing of lines (use - to read from stdin) -f, --filter stringArray Add a file-filtering rule --filter-from stringArray Read filtering patterns from a file (use - to read from stdin) + --fs-cache-expire-duration duration cache remotes for this long (0 to disable caching) (default 5m0s) + --fs-cache-expire-interval duration interval to check for expired remotes (default 1m0s) --header stringArray Set HTTP header for all transactions --header-download stringArray Set HTTP header for download transactions --header-upload stringArray Set HTTP header for upload transactions @@ -6491,7 +6806,7 @@ Showing nodes accounting for 1537.03kB, 100% of 1537.03kB total --use-json-log Use json log format. --use-mmap Use mmap allocator (see docs). --use-server-modtime Use server modified time instead of object metadata - --user-agent string Set the user-agent to a specified string. The default is rclone/ version (default "rclone/v1.54.0") + --user-agent string Set the user-agent to a specified string. The default is rclone/ version (default "rclone/v1.55.0") -v, --verbose count Print lots more stuff (repeat for more)

Backend Flags

These flags are available for every command. They control the backends and may be set in the config file.

@@ -6518,6 +6833,7 @@ Showing nodes accounting for 1537.03kB, 100% of 1537.03kB total --azureblob-msi-client-id string Object ID of the user-assigned MSI to use, if any. Leave blank if msi_object_id or msi_mi_res_id specified. --azureblob-msi-mi-res-id string Azure resource ID of the user-assigned MSI to use, if any. Leave blank if msi_client_id or msi_object_id specified. --azureblob-msi-object-id string Object ID of the user-assigned MSI to use, if any. Leave blank if msi_client_id or msi_mi_res_id specified. + --azureblob-public-access string Public access level of a container: blob, container. --azureblob-sas-url string SAS URL for container level access only --azureblob-service-principal-file string Path to file containing credentials for use with a service principal. --azureblob-upload-cutoff string Cutoff for switching to chunked upload (<= 256MB). (Deprecated) @@ -6581,6 +6897,7 @@ Showing nodes accounting for 1537.03kB, 100% of 1537.03kB total -L, --copy-links Follow symlinks and copy the pointed to item. --crypt-directory-name-encryption Option to either encrypt directory names or leave them intact. (default true) --crypt-filename-encryption string How to encrypt the filenames. (default "standard") + --crypt-no-data-encryption Option to either encrypt file data or leave it unencrypted. --crypt-password string Password or pass phrase for encryption. (obscured) --crypt-password2 string Password or pass phrase for salt. Optional but recommended. (obscured) --crypt-remote string Remote to encrypt/decrypt. @@ -6616,7 +6933,7 @@ Showing nodes accounting for 1537.03kB, 100% of 1537.03kB total --drive-starred-only Only show files that are starred. --drive-stop-on-download-limit Make download limit errors be fatal --drive-stop-on-upload-limit Make upload limit errors be fatal - --drive-team-drive string ID of the Team Drive + --drive-team-drive string ID of the Shared Drive (Team Drive) --drive-token string OAuth Access Token as a JSON blob. --drive-token-url string Token server url. --drive-trashed-only Only show files that are in the trash. @@ -6645,12 +6962,14 @@ Showing nodes accounting for 1537.03kB, 100% of 1537.03kB total --filefabric-token-expiry string Token expiry time --filefabric-url string URL of the Enterprise File Fabric to connect to --filefabric-version string Version read from the file fabric + --ftp-close-timeout Duration Maximum time to wait for a response to close. (default 1m0s) --ftp-concurrency int Maximum number of FTP simultaneous connections, 0 for unlimited --ftp-disable-epsv Disable using EPSV even if server advertises support --ftp-disable-mlsd Disable using MLSD even if server advertises support --ftp-encoding MultiEncoder This sets the encoding for the backend. (default Slash,Del,Ctl,RightSpace,Dot) --ftp-explicit-tls Use Explicit FTPS (FTP over TLS) --ftp-host string FTP host to connect to + --ftp-idle-timeout Duration Max time before closing idle connections (default 1m0s) --ftp-no-check-certificate Do not verify the TLS certificate of the server --ftp-pass string FTP password (obscured) --ftp-port string FTP port, leave blank to use default (21) @@ -6712,6 +7031,7 @@ Showing nodes accounting for 1537.03kB, 100% of 1537.03kB total --local-case-sensitive Force the filesystem to report itself as case sensitive. --local-encoding MultiEncoder This sets the encoding for the backend. (default Slash,Dot) --local-no-check-updated Don't check to see if the files change during upload + --local-no-preallocate Disable preallocation of disk space for transferred files --local-no-set-modtime Disable setting modtime --local-no-sparse Disable sparse files for multi-thread downloads --local-no-unicode-normalization Don't apply unicode normalization to paths and filenames (Deprecated) @@ -6816,8 +7136,10 @@ Showing nodes accounting for 1537.03kB, 100% of 1537.03kB total --seafile-url string URL of seafile host to connect to --seafile-user string User name (usually email address) --sftp-ask-password Allow asking for SFTP password when needed. + --sftp-disable-concurrent-reads If set don't use concurrent reads --sftp-disable-hashcheck Disable the execution of SSH commands to determine if remote file hashing is available. --sftp-host string SSH host to connect to + --sftp-idle-timeout Duration Max time before closing idle connections (default 1m0s) --sftp-key-file string Path to PEM-encoded private key file, leave blank or set key-use-agent to use ssh-agent. --sftp-key-file-pass string The passphrase to decrypt the PEM-encoded private key file. (obscured) --sftp-key-pem string Raw PEM-encoded private key, If specified, will override key_file parameter. @@ -6887,9 +7209,10 @@ Showing nodes accounting for 1537.03kB, 100% of 1537.03kB total --union-upstreams string List of space separated upstreams. --webdav-bearer-token string Bearer token instead of user/pass (e.g. a Macaroon) --webdav-bearer-token-command string Command to run to get a bearer token + --webdav-encoding string This sets the encoding for the backend. --webdav-pass string Password. (obscured) --webdav-url string URL of http host to connect to - --webdav-user string User name + --webdav-user string User name. In case NTLM authentication is used, the username should be in the format 'Domain\User'. --webdav-vendor string Name of the Webdav site/service/software you are using --yandex-auth-url string Auth server URL. --yandex-client-id string OAuth Client Id @@ -6897,8 +7220,13 @@ Showing nodes accounting for 1537.03kB, 100% of 1537.03kB total --yandex-encoding MultiEncoder This sets the encoding for the backend. (default Slash,Del,Ctl,InvalidUtf8,Dot) --yandex-token string OAuth Access Token as a JSON blob. --yandex-token-url string Token server url. + --zoho-auth-url string Auth server URL. + --zoho-client-id string OAuth Client Id + --zoho-client-secret string OAuth Client Secret --zoho-encoding MultiEncoder This sets the encoding for the backend. (default Del,Ctl,InvalidUtf8) - --zoho-region string Zoho region to connect to. You'll have to use the region you organization is registered in. + --zoho-region string Zoho region to connect to. You'll have to use the region you organization is registered in. + --zoho-token string OAuth Access Token as a JSON blob. + --zoho-token-url string Token server url.

1Fichier

This is a backend for the 1fichier cloud storage service. Note that a Premium subscription is required to use the API.

Paths are specified as remote:path

@@ -7575,6 +7903,10 @@ y/e/d>
rclone copy --min-age 24h --no-traverse /path/to/source s3:bucket

You'd then do a full rclone sync less often.

Note that --fast-list isn't required in the top-up sync.

+

Avoiding HEAD requests after PUT

+

By default rclone will HEAD every object it uploads. It does this to check the object got uploaded correctly.

+

You can disable this with the --s3-no-head option - see there for more details.

+

Setting this flag increases the chance for undetected upload failures.

Hashes

For small objects which weren't uploaded as multipart uploads (objects sized below --s3-upload-cutoff if uploaded with rclone) rclone uses the ETag: header as an MD5 checksum.

However for objects which were uploaded as multipart uploads or with server side encryption (SSE-AWS or SSE-C) the ETag header is no longer the MD5 sum of the data, so rclone adds an additional piece of metadata X-Amz-Meta-Md5chksum which is a base64 encoded MD5 hash (in the same format as is required for Content-MD5).

@@ -10735,7 +11067,7 @@ chunk_total_size = 10G
Certificate Validation

When the Plex server is configured to only accept secure connections, it is possible to use .plex.direct URLs to ensure certificate validation succeeds. These URLs are used by Plex internally to connect to the Plex server securely.

The format for these URLs is the following:

-

https://ip-with-dots-replaced.server-hash.plex.direct:32400/

+

https://ip-with-dots-replaced.server-hash.plex.direct:32400/

The ip-with-dots-replaced part can be any IPv4 address, where the dots have been replaced with dashes, e.g. 127.0.0.1 becomes 127-0-0-1.

To get the server-hash part, the easiest way is to visit

https://plex.tv/api/resources?includeHttps=1&X-Plex-Token=your-plex-token

@@ -11096,6 +11428,7 @@ y/e/d> y

The default chunk name format is *.rclone_chunk.###, hence by default chunk names are BIG_FILE_NAME.rclone_chunk.001, BIG_FILE_NAME.rclone_chunk.002 etc. You can configure another name format using the name_format configuration file option. The format uses asterisk * as a placeholder for the base file name and one or more consecutive hash characters # as a placeholder for sequential chunk number. There must be one and only one asterisk. The number of consecutive hash characters defines the minimum length of a string representing a chunk number. If decimal chunk number has less digits than the number of hashes, it is left-padded by zeros. If the decimal string is longer, it is left intact. By default numbering starts from 1 but there is another option that allows user to start from 0, e.g. for compatibility with legacy software.

For example, if name format is big_*-##.part and original file name is data.txt and numbering starts from 0, then the first chunk will be named big_data.txt-00.part, the 99th chunk will be big_data.txt-98.part and the 302nd chunk will become big_data.txt-301.part.

Note that list assembles composite directory entries only when chunk names match the configured format and treats non-conforming file names as normal non-chunked files.

+

When using norename transactions, chunk names will additionally have a unique file version suffix. For example, BIG_FILE_NAME.rclone_chunk.001_bp562k.

Metadata

Besides data chunks chunker will by default create metadata object for a composite file. The object is named after the original file. Chunker allows user to disable metadata completely (the none format). Note that metadata is normally not created for files smaller than the configured chunk size. This may change in future rclone releases.

Simple JSON metadata format

@@ -11106,6 +11439,7 @@ y/e/d> y
  • nchunks - number of data chunks in file
  • md5 - MD5 hashsum of composite file (if present)
  • sha1 - SHA1 hashsum (if present)
  • +
  • txn - identifies current version of the file
  • There is no field for composite file name as it's simply equal to the name of meta object on the wrapped remote. Please refer to respective sections for details on hashsums and modified time handling.

    No metadata

    @@ -11119,7 +11453,7 @@ y/e/d> y

    Modified time

    Chunker stores modification times using the wrapped remote so support depends on that. For a small non-chunked file the chunker overlay simply manipulates modification time of the wrapped remote file. For a composite file with metadata chunker will get and set modification time of the metadata object on the wrapped remote. If file is chunked but metadata format is none then chunker will use modification time of the first data chunk.

    Migrations

    -

    The idiomatic way to migrate to a different chunk size, hash type or chunk naming scheme is to:

    +

    The idiomatic way to migrate to a different chunk size, hash type, transaction style or chunk naming scheme is to:

    +

    --chunker-transactions

    +

    Choose how chunker should handle temporary files during transactions.

    +

    Citrix ShareFile

    Citrix ShareFile is a secure file sharing and transfer service aimed as business.

    The initial setup for Citrix ShareFile involves getting a token from Citrix ShareFile which you can in your browser. rclone config walks you through it.

    @@ -11491,7 +11856,7 @@ y/e/d> y

    To use crypt, first set up the underlying remote. Follow the rclone config instructions for the specific backend.

    Before configuring the crypt remote, check the underlying remote is working. In this example the underlying remote is called remote. We will configure a path path within this remote to contain the encrypted content. Anything inside remote:path will be encrypted and anything outside will not.

    Configure crypt using rclone config. In this example the crypt remote is called secret, to differentiate it from the underlying remote.

    -

    When you are done you can use the crypt remote named secret just as you would with any other remote, e.g. rclone copy D:\docs secret:\docs, and rclone will encrypt and decrypt as needed on the fly. If you access the wrapped remote remote:path directly you will bypass the encryption, and anything you read will be in encrypted form, and anything you write will be undencrypted. To avoid issues it is best to configure a dedicated path for encrypted content, and access it exclusively through a crypt remote.

    +

    When you are done you can use the crypt remote named secret just as you would with any other remote, e.g. rclone copy D:\docs secret:\docs, and rclone will encrypt and decrypt as needed on the fly. If you access the wrapped remote remote:path directly you will bypass the encryption, and anything you read will be in encrypted form, and anything you write will be unencrypted. To avoid issues it is best to configure a dedicated path for encrypted content, and access it exclusively through a crypt remote.

    No remotes found - make a new one
     n) New remote
     s) Set configuration password
    @@ -11766,6 +12131,25 @@ $ rclone -q ls secret:
     
  • Type: bool
  • Default: false
  • +

    --crypt-no-data-encryption

    +

    Option to either encrypt file data or leave it unencrypted.

    +
      +
    • Config: no_data_encryption
    • +
    • Env Var: RCLONE_CRYPT_NO_DATA_ENCRYPTION
    • +
    • Type: bool
    • +
    • Default: false
    • +
    • Examples: +
        +
      • "true" +
          +
        • Don't encrypt file data, leave it unencrypted.
        • +
      • +
      • "false" +
          +
        • Encrypt file data.
        • +
      • +
    • +

    Backend commands

    Here are the commands specific to the crypt backend.

    Run them with

    @@ -11851,7 +12235,7 @@ rclone rc backend/command command=decode fs=crypt: encryptedfile1 [encryptedfile

    Key derivation

    Rclone uses scrypt with parameters N=16384, r=8, p=1 with an optional user supplied salt (password2) to derive the 32+32+16 = 80 bytes of key material required. If the user doesn't supply a salt then rclone uses an internal one.

    scrypt makes it impractical to mount a dictionary attack on rclone encrypted data. For full protection against this you should always use a salt.

    -

    SEE ALSO

    +

    SEE ALSO

    @@ -12125,6 +12509,9 @@ y/e/d> y

    --dropbox-impersonate

    Impersonate this user when using a business account.

    +

    Note that if you want to use impersonate, you should make sure this flag is set when running "rclone config" as this will cause rclone to request the "members.read" scope which it won't normally. This is needed to lookup a members email address into the internal ID that dropbox uses in the API.

    +

    Using the "members.read" scope will require a Dropbox Team Admin to approve during the OAuth flow.

    +

    You will have to use your own App (setting your own client_id and client_secret) to use this option as currently rclone's default set of permissions doesn't include "members.read". This can be added once v1.55 or later is in use everywhere.

    +

    --ftp-idle-timeout

    +

    Max time before closing idle connections

    +

    If no connections have been returned to the connection pool in the time given, rclone will empty the connection pool.

    +

    Set to 0 to keep connections indefinitely.

    + +

    --ftp-close-timeout

    +

    Maximum time to wait for a response to close.

    +

    --ftp-encoding

    This sets the encoding for the backend.

    See: the encoding section in the overview for more info.

    @@ -13132,7 +13537,7 @@ If your browser doesn't open automatically go to the following link: http:// Log in and authorize rclone for access Waiting for code... Got code -Configure this as a team drive? +Configure this as a Shared Drive (Team Drive)? y) Yes n) No y/n> n @@ -13233,15 +13638,15 @@ y/n> # Auto config, y

    Note: in case you configured a specific root folder on gdrive and rclone is unable to access the contents of that folder when using --drive-impersonate, do this instead: - in the gdrive web interface, share your root folder with the user/email of the new Service Account you created/selected at step #1 - use rclone without specifying the --drive-impersonate option, like this: rclone -v foo@example.com lsf gdrive:backup

    -

    Team drives

    -

    If you want to configure the remote to point to a Google Team Drive then answer y to the question Configure this as a team drive?.

    -

    This will fetch the list of Team Drives from google and allow you to configure which one you want to use. You can also type in a team drive ID if you prefer.

    +

    Shared drives (team drives)

    +

    If you want to configure the remote to point to a Google Shared Drive (previously known as Team Drives) then answer y to the question Configure this as a Shared Drive (Team Drive)?.

    +

    This will fetch the list of Shared Drives from google and allow you to configure which one you want to use. You can also type in a Shared Drive ID if you prefer.

    For example:

    -
    Configure this as a team drive?
    +
    Configure this as a Shared Drive (Team Drive)?
     y) Yes
     n) No
     y/n> y
    -Fetching team drive list...
    +Fetching Shared Drive list...
     Choose a number from below, or type in your own value
      1 / Rclone Test
        \ "xxxxxxxxxxxxxxxxxxxx"
    @@ -13249,7 +13654,7 @@ Choose a number from below, or type in your own value
        \ "yyyyyyyyyyyyyyyyyyyy"
      3 / Rclone Test 3
        \ "zzzzzzzzzzzzzzzzzzzz"
    -Enter a Team Drive ID> 1
    +Enter a Shared Drive ID> 1
     --------------------
     [remote]
     client_id =
    @@ -13659,7 +14064,7 @@ trashed=false and 'c' in parents
  • Default: ""
  • --drive-team-drive

    -

    ID of the Team Drive

    +

    ID of the Shared Drive (Team Drive)

    • Config: team_drive
    • Env Var: RCLONE_DRIVE_TEAM_DRIVE
    • @@ -13972,9 +14377,9 @@ rclone backend shortcut drive: source_item -o target=drive2: destination_shortcu
    • "target": optional target remote for the shortcut destination

    drives

    -

    List the shared drives available to this account

    +

    List the Shared Drives available to this account

    rclone backend drives remote: [options] [<arguments>+]
    -

    This command lists the shared drives (teamdrives) available to this account.

    +

    This command lists the Shared Drives (Team Drives) available to this account.

    Usage:

    rclone backend drives drive:

    This will return a JSON list of objects like this

    @@ -15104,7 +15509,7 @@ y/e/d> y

    Limitations

    Note that Koofr is case insensitive so you can't have a file called "Hello.doc" and one called "hello.doc".

    Mail.ru Cloud

    -

    Mail.ru Cloud is a cloud storage provided by a Russian internet company Mail.Ru Group. The official desktop client is Disk-O:, available only on Windows. (Please note that official sites are in Russian)

    +

    Mail.ru Cloud is a cloud storage provided by a Russian internet company Mail.Ru Group. The official desktop client is Disk-O:, available on Windows and Mac OS.

    Currently it is recommended to disable 2FA on Mail.ru accounts intended for rclone until it gets eventually implemented.

    Features highlights

    +

    --azureblob-public-access

    +

    Public access level of a container: blob, container.

    +

    Limitations

    MD5 sums are only uploaded with chunked files if the source has an MD5 sum. This will always be the case for a local to azure copy.

    rclone about is not supported by the Microsoft Azure Blob storage backend. Backends without this capability cannot determine free space for an rclone mount or use policy mfs (most free space) as a member of an rclone union remote.

    @@ -18168,12 +18596,35 @@ known_hosts_file = ~/.ssh/known_hosts
  • Type: bool
  • Default: false
  • +

    --sftp-disable-concurrent-reads

    +

    If set don't use concurrent reads

    +

    Normally concurrent reads are safe to use and not using them will degrade performance, so this option is disabled by default.

    +

    Some servers limit the amount number of times a file can be downloaded. Using concurrent reads can trigger this limit, so if you have a server which returns

    +
    Failed to copy: file does not exist
    +

    Then you may need to enable this flag.

    +

    If concurrent reads are disabled, the use_fstat option is ignored.

    + +

    --sftp-idle-timeout

    +

    Max time before closing idle connections

    +

    If no connections have been returned to the connection pool in the time given, rclone will empty the connection pool.

    +

    Set to 0 to keep connections indefinitely.

    +

    Limitations

    SFTP supports checksums if the same login has shell access and md5sum or sha1sum as well as echo are in the remote's PATH. This remote checksumming (file hashing) is recommended and enabled by default. Disabling the checksumming may be required if you are connecting to SFTP servers which are not under your control, and to which the execution of remote commands is prohibited. Set the configuration option disable_hashcheck to true to disable checksumming.

    SFTP also supports about if the same login has shell access and df are in the remote's PATH. about will return the total space, free space, and used space on the remote for the disk of the specified path on the remote or, if not set, the disk of the root on the remote. about will fail if it does not have shell access or if df is not in the remote's PATH.

    Note that some SFTP servers (e.g. Synology) the paths are different for SSH and SFTP so the hashes can't be calculated properly. For them using disable_hashcheck is a good idea.

    The only ssh agent supported under Windows is Putty's pageant.

    -

    The Go SSH library disables the use of the aes128-cbc cipher by default, due to security concerns. This can be re-enabled on a per-connection basis by setting the use_insecure_cipher setting in the configuration file to true. Further details on the insecurity of this cipher can be found [in this paper] (http://www.isg.rhul.ac.uk/~kp/SandPfinal.pdf).

    +

    The Go SSH library disables the use of the aes128-cbc cipher by default, due to security concerns. This can be re-enabled on a per-connection basis by setting the use_insecure_cipher setting in the configuration file to true. Further details on the insecurity of this cipher can be found in this paper.

    SFTP isn't supported under plan9 until this issue is fixed.

    Note that since SFTP isn't HTTP based the following flags don't work with it: --dump-headers, --dump-bodies, --dump-auth

    Note that --timeout isn't supported (but --contimeout is).

    @@ -18887,9 +19338,11 @@ Choose a number from below, or type in your own value \ "nextcloud" 2 / Owncloud \ "owncloud" - 3 / Sharepoint + 3 / Sharepoint Online, authenticated by Microsoft account. \ "sharepoint" - 4 / Other site/service or software + 4 / Sharepoint with NTLM authentication. Usually self-hosted or on-premises. + \ "sharepoint-ntlm" + 5 / Other site/service or software \ "other" vendor> 1 User name @@ -18965,7 +19418,11 @@ y/e/d> y
  • "sharepoint"
      -
    • Sharepoint
    • +
    • Sharepoint Online, authenticated by Microsoft account.
    • +
  • +
  • "sharepoint-ntlm" +
      +
    • Sharepoint with NTLM authentication. Usually self-hosted or on-premises.
  • "other"
      @@ -18974,7 +19431,7 @@ y/e/d> y
  • --webdav-user

    -

    User name

    +

    User name. In case NTLM authentication is used, the username should be in the format 'Domain'.

    +

    --webdav-encoding

    +

    This sets the encoding for the backend.

    +

    See: the encoding section in the overview for more info.

    +

    Default encoding is Slash,LtGt,DoubleQuote,Colon,Question,Asterisk,Pipe,Hash,Percent,BackSlash,Del,Ctl,LeftSpace,LeftTilde,RightSpace,RightPeriod,InvalidUtf8 for sharepoint-ntlm or identity otherwise.

    +

    Provider notes

    See below for notes on specific providers.

    Owncloud

    @@ -19015,7 +19482,7 @@ y/e/d> y

    Owncloud supports modified times using the X-OC-Mtime header.

    Nextcloud

    This is configured in an identical way to Owncloud. Note that Nextcloud initially did not support streaming of files (rcat) whereas Owncloud did, but this seems to be fixed as of 2020-11-27 (tested with rclone v1.53.1 and Nextcloud Server v19).

    -

    Sharepoint

    +

    Sharepoint Online

    Rclone can be used with Sharepoint provided by OneDrive for Business or Office365 Education Accounts. This feature is only needed for a few of these Accounts, mostly Office365 Education ones. These accounts are sometimes not verified by the domain owner github#1975

    This means that these accounts can't be added using the official API (other Accounts should work with the "onedrive" option). However, it is possible to access them using webdav.

    To use a sharepoint remote with rclone, add it like this: First, you need to get your remote's URL:

    @@ -19029,9 +19496,23 @@ y/e/d> y
    [sharepoint]
     type = webdav
     url = https://[YOUR-DOMAIN]-my.sharepoint.com/personal/[YOUR-EMAIL]/Documents
    -vendor = other
    +vendor = sharepoint
     user = YourEmailAddress
     pass = encryptedpassword
    +

    Sharepoint with NTLM Authentication

    +

    Use this option in case your (hosted) Sharepoint is not tied to OneDrive accounts and uses NTLM authentication.

    +

    To get the url configuration, similarly to the above, first navigate to the desired directory in your browser to get the URL, then strip everything after the name of the opened directory.

    +

    Example: If the URL is: https://example.sharepoint.com/sites/12345/Documents/Forms/AllItems.aspx

    +

    The configuration to use would be: https://example.sharepoint.com/sites/12345/Documents

    +

    Set the vendor to sharepoint-ntlm.

    +

    NTLM uses domain and user name combination for authentication, set user to DOMAIN\username.

    +

    Your config file should look like this:

    +
    [sharepoint]
    +type = webdav
    +url = https://[YOUR-DOMAIN]/some-path-to/Documents
    +vendor = sharepoint-ntlm
    +user = DOMAIN\user
    +pass = encryptedpassword

    Required Flags for SharePoint

    As SharePoint does some special things with uploaded documents, you won't be able to use the documents size or the documents hash to compare if a file has been changed since the upload / which file is newer.

    For Rclone calls copying files (especially Office files such as .docx, .xlsx, etc.) from/to SharePoint (like copy, sync, etc.), you should append these flags to ensure Rclone uses the "Last Modified" datetime property to compare your documents:

    @@ -19246,7 +19727,7 @@ e) Edit this remote d) Delete this remote y/e/d>

    See the remote setup docs for how to set it up on a machine with no Internet browser available.

    -

    Note that rclone runs a webserver on your local machine to collect the token as returned from Zoho Workdrive. This only runs from the moment it opens your browser to the moment you get back the verification code. This is on http://127.0.0.1:53682/ and this it may require you to unblock it temporarily if you are running a host firewall.

    +

    Rclone runs a webserver on your local computer to collect the authorization token from Zoho Workdrive. This is only from the moment your browser is opened until the token is returned. The webserver runs on http://127.0.0.1:53682/. If local port 53682 is protected by a firewall you may need to temporarily unblock the firewall to complete authorization.

    Once configured you can then use rclone like this,

    See top level directories

    rclone lsd remote:
    @@ -19267,6 +19748,22 @@ y/e/d>

    Only control characters and invalid UTF-8 are replaced. In addition most Unicode full-width characters are not supported at all and will be removed from filenames during upload.

    Standard Options

    Here are the standard options specific to zoho (Zoho).

    +

    --zoho-client-id

    +

    OAuth Client Id Leave blank normally.

    + +

    --zoho-client-secret

    +

    OAuth Client Secret Leave blank normally.

    +

    --zoho-region

    Zoho region to connect to. You'll have to use the region you organization is registered in.

    Advanced Options

    Here are the advanced options specific to zoho (Zoho).

    +

    --zoho-token

    +

    OAuth Access Token as a JSON blob.

    + +

    --zoho-auth-url

    +

    Auth server URL. Leave blank to use the provider defaults.

    + +

    --zoho-token-url

    +

    Token server url. Leave blank to use the provider defaults.

    +

    --zoho-encoding

    This sets the encoding for the backend.

    See: the encoding section in the overview for more info.

    @@ -19308,8 +19829,8 @@ y/e/d>

    Local Filesystem

    Local paths are specified as normal filesystem paths, e.g. /path/to/wherever, so

    rclone sync -i /home/source /tmp/destination
    -

    Will sync /home/source to /tmp/destination

    -

    These can be configured into the config file for consistencies sake, but it is probably easier not to.

    +

    Will sync /home/source to /tmp/destination.

    +

    For consistencies sake one can also configure a remote of type local in the config file, and access the local filesystem using rclone remote paths, e.g. remote:path/to/wherever, but it is probably easier not to.

    Modified time

    Rclone reads and writes the modified time using an accuracy determined by the OS. Typically this is 1ns on Linux, 10 ns on Windows and 1 Second on OS X.

    Filenames

    @@ -19580,9 +20101,12 @@ y/e/d>

    Invalid UTF-8 bytes will also be replaced, as they can't be converted to UTF-16.

    -

    Long paths on Windows

    -

    Rclone handles long paths automatically, by converting all paths to long UNC paths which allows paths up to 32,767 characters.

    -

    This is why you will see that your paths, for instance c:\files is converted to the UNC path \\?\c:\files in the output, and \\server\share is converted to \\?\UNC\server\share.

    +

    Paths on Windows

    +

    On Windows there are many ways of specifying a path to a file system resource. Both absolute paths like C:\path\to\wherever, and relative paths like ..\wherever can be used, and path separator can be either \ (as in C:\path\to\wherever) or / (as in C:/path/to/wherever). Length of these paths are limited to 259 characters for files and 247 characters for directories, but there is an alternative extended-length path format increasing the limit to (approximately) 32,767 characters. This format requires absolute paths and the use of prefix \\?\, e.g. \\?\D:\some\very\long\path. For convenience rclone will automatically convert regular paths into the corresponding extended-length paths, so in most cases you do not have to worry about this (read more below).

    +

    Note that Windows supports using the same prefix \\?\ to specify path to volumes identified by their GUID, e.g. \\?\Volume{b75e2c83-0000-0000-0000-602f00000000}\some\path. This is not supported in rclone, due to an issue in go.

    +

    Long paths

    +

    Rclone handles long paths automatically, by converting all paths to extended-length path format, which allows paths up to 32,767 characters.

    +

    This conversion will ensure paths are absolute and prefix them with the \\?\. This is why you will see that your paths, for instance .\files is shown as path \\?\C:\files in the output, and \\server\share as \\?\UNC\server\share.

    However, in rare cases this may cause problems with buggy file system drivers like EncFS. To disable UNC conversion globally, add this to your .rclone.conf file:

    [local]
     nounc = true
    @@ -19592,7 +20116,7 @@ type = local nounc = true

    And use rclone like this:

    rclone copy c:\src nounc:z:\dst

    -

    This will use UNC paths on c:\src but not on z:\dst. Of course this will cause problems if the absolute path length of a file exceeds 258 characters on z, so only use this option if you have to.

    +

    This will use UNC paths on c:\src but not on z:\dst. Of course this will cause problems if the absolute path length of a file exceeds 259 characters on z, so only use this option if you have to.

    Normally rclone will ignore symlinks or junction points (which behave like symlinks under Windows).

    If you supply --copy-links or -L then rclone will follow the symlink and copy the pointed to file or directory. Note that this flag is incompatible with -links / -l.

    @@ -19675,8 +20199,8 @@ $ tree /tmp/b 0 file2

    NB Rclone (like most unix tools such as du, rsync and tar) treats a bind mount to the same device as being on the same filesystem.

    NB This flag is only available on Unix based systems. On systems where it isn't supported (e.g. Windows) it will be ignored.

    -

    Standard Options

    -

    Here are the standard options specific to local (Local Disk).

    +

    Advanced Options

    +

    Here are the advanced options specific to local (Local Disk).

    --local-nounc

    Disable UNC (long path names) conversion on Windows

    -

    Advanced Options

    -

    Here are the advanced options specific to local (Local Disk).

    Follow symlinks and copy the pointed to item.

    +

    --local-no-preallocate

    +

    Disable preallocation of disk space for transferred files

    +

    Preallocation of disk space helps prevent filesystem fragmentation. However, some virtual filesystem layers (such as Google Drive File Stream) may incorrectly set the actual file size equal to the preallocated space, causing checksum and file size checks to fail. Use this flag to disable preallocation.

    +

    --local-no-sparse

    Disable sparse files for multi-thread downloads

    On Windows platforms rclone will make sparse files when doing multi-thread downloads. This avoids long pauses on large files where the OS zeros the file. However sparse files may be undesirable as they cause disk fragmentation and can be slow to work with.

    @@ -19824,12 +20355,289 @@ $ tree /tmp/b
  • "error": return an error based on option value
  • Changelog

    +

    v1.55.0 - 2021-03-31

    +

    See commits

    + +

    v1.54.1 - 2021-03-08

    +

    See commits

    +

    v1.54.0 - 2021-02-02

    See commits