From 1a98c36a73581c43142385a396f29e8e923041a7 Mon Sep 17 00:00:00 2001
From: Nick Craig-Wood Aug 22, 2025 Sep 24, 2025 rclone - manage files on cloud storage Its syntax is like this A A An See the global flags page for
global options not listed here. Copy files from source to dest, skipping identical files.rclone(1) User Manual
-NAME
rclone subcommand [options] <parameters> <parameters...>subcommand is a the rclone operation required, (e.g.
+subcommand is an rclone operation required (e.g.
sync, copy, ls).option is a single letter flag (e.g. -v)
or a group of single letter flags (e.g. -Pv) or a long flag
@@ -1277,6 +1277,8 @@ to protect your configuration.See Also
+
+
+
rclone copy
Synopsis
@@ -1342,15 +1345,16 @@ instead.
If dest:path doesn't exist, it is created and the source:path contents go there.
For example
-rclone copy source:sourcepath dest:destpath
+rclone copy source:sourcepath dest:destpathLet's say there are two files in sourcepath
-sourcepath/one.txt
+sourcepath/one.txt
sourcepath/two.txt
This copies them to
-destpath/one.txt
+destpath/one.txt
destpath/two.txt
Not to
-destpath/sourcepath/one.txt
+destpath/sourcepath/one.txt
destpath/sourcepath/two.txt
If you are familiar with rsync, rclone always works as
if you had written a trailing / - meaning "copy the
@@ -1364,20 +1368,22 @@ destination can speed transfers up greatly.
For example, if you have many files in /path/to/src but only a few of
them change every day, you can copy all the files which have changed
recently very efficiently like this:
-rclone copy --max-age 24h --no-traverse /path/to/src remote:
+rclone copy --max-age 24h --no-traverse /path/to/src remote:
Rclone will sync the modification times of files and directories if
the backend supports it. If metadata syncing is required then use the
--metadata flag.
Note that the modification time and metadata for the root directory
-will not be synced. See
-https://github.com/rclone/rclone/issues/7652 for more info.
+will not be synced. See issue #7652 for
+more info.
Note: Use the
-P/--progress flag to view real-time transfer
statistics.
Note: Use the --dry-run or the
--interactive/-i flag to test without copying
anything.
-Logger Flags
+Logger Flags
The --differ, --missing-on-dst,
--missing-on-src, --match and
--error flags write paths, one per line, to the file name
@@ -1425,7 +1431,7 @@ scenarios are not currently supported:
Note also that each file is logged during execution, as opposed to
after, so it is most useful as a predictor of what SHOULD happen to each
-file (which may or may not match what actually DID.)
+file (which may or may not match what actually DID).
rclone copy source:path dest:path [flags]
Options
--absolute Put a leading / in front of path names
@@ -1451,7 +1457,7 @@ href="https://rclone.org/flags/">global flags page for global
options not listed here.
Copy Options
Flags for anything which can copy a file
- --check-first Do all the checks before starting transfers
+ --check-first Do all the checks before starting transfers
-c, --checksum Check for changes with size & checksum (if available, or fallback to size only)
--compare-dest stringArray Include additional server-side paths during comparison
--copy-dest stringArray Implies --compare-dest but also copies files from paths into destination
@@ -1487,12 +1493,12 @@ options not listed here.
-u, --update Skip files that are newer on the destination
Important Options
Important flags useful for most commands
- -n, --dry-run Do a trial run with no permanent changes
+ -n, --dry-run Do a trial run with no permanent changes
-i, --interactive Enable interactive mode
-v, --verbose count Print lots more stuff (repeat for more)
Filter Options
Flags for filtering directory listings
- --delete-excluded Delete files on dest excluded from sync
+ --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
--exclude-if-present stringArray Exclude directories if filename is present
@@ -1517,13 +1523,16 @@ options not listed here.
--min-size SizeSuffix Only transfer files bigger than this in KiB or suffix B|K|M|G|T|P (default off)
Listing Options
Flags for listing directories
- --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
+ --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
--fast-list Use recursive list if available; uses more memory but fewer transactions
See Also
+
+
- rclone - Show help
for rclone commands, flags and backends.
+
rclone sync
Make source and dest identical, modifying destination only.
Synopsis
@@ -1537,7 +1546,8 @@ command instead.
Important: Since this can cause data loss, test
first with the --dry-run or the
--interactive/i flag.
-rclone sync --interactive SOURCE remote:DESTINATION
+rclone sync --interactive SOURCE remote:DESTINATION
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 not yet handled. Files that are excluded
@@ -1560,8 +1570,10 @@ a destination that is inside the source directory.
the backend supports it. If metadata syncing is required then use the
--metadata flag.
Note that the modification time and metadata for the root directory
-will not be synced. See
-https://github.com/rclone/rclone/issues/7652 for more info.
+will not be synced. See https://github.com/rclone/rclone/issues/7652 for more
+info.
Note: Use the
-P/--progress flag to view real-time transfer
statistics
@@ -1570,7 +1582,7 @@ deal with "Duplicate object/directory found in source/destination -
ignoring" errors. See this
forum post for more info.
-Logger Flags
+Logger Flags
The --differ, --missing-on-dst,
--missing-on-src, --match and
--error flags write paths, one per line, to the file name
@@ -1618,7 +1630,7 @@ scenarios are not currently supported:
Note also that each file is logged during execution, as opposed to
after, so it is most useful as a predictor of what SHOULD happen to each
-file (which may or may not match what actually DID.)
+file (which may or may not match what actually DID).
rclone sync source:path dest:path [flags]
Options
--absolute Put a leading / in front of path names
@@ -1644,7 +1656,7 @@ href="https://rclone.org/flags/">global flags page for global
options not listed here.
Copy Options
Flags for anything which can copy a file
- --check-first Do all the checks before starting transfers
+ --check-first Do all the checks before starting transfers
-c, --checksum Check for changes with size & checksum (if available, or fallback to size only)
--compare-dest stringArray Include additional server-side paths during comparison
--copy-dest stringArray Implies --compare-dest but also copies files from paths into destination
@@ -1680,7 +1692,7 @@ options not listed here.
-u, --update Skip files that are newer on the destination
Sync Options
Flags used for sync commands
- --backup-dir string Make backups into hierarchy based in DIR
+ --backup-dir string Make backups into hierarchy based in DIR
--delete-after When synchronizing, delete files on destination after transferring (default)
--delete-before When synchronizing, delete files on destination before transferring
--delete-during When synchronizing, delete files during transfer
@@ -1695,12 +1707,12 @@ options not listed here.
--track-renames-strategy string Strategies to use when synchronizing using track-renames hash|modtime|leaf (default "hash")
Important Options
Important flags useful for most commands
- -n, --dry-run Do a trial run with no permanent changes
+ -n, --dry-run Do a trial run with no permanent changes
-i, --interactive Enable interactive mode
-v, --verbose count Print lots more stuff (repeat for more)
Filter Options
Flags for filtering directory listings
- --delete-excluded Delete files on dest excluded from sync
+ --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
--exclude-if-present stringArray Exclude directories if filename is present
@@ -1725,13 +1737,16 @@ options not listed here.
--min-size SizeSuffix Only transfer files bigger than this in KiB or suffix B|K|M|G|T|P (default off)
Listing Options
Flags for listing directories
- --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
+ --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
--fast-list Use recursive list if available; uses more memory but fewer transactions
See Also
+
+
- rclone - Show help
for rclone commands, flags and backends.
+
rclone move
Move files from source to dest.
Synopsis
@@ -1760,15 +1775,17 @@ destination can speed transfers up greatly.
the backend supports it. If metadata syncing is required then use the
--metadata flag.
Note that the modification time and metadata for the root directory
-will not be synced. See
-https://github.com/rclone/rclone/issues/7652 for more info.
+will not be synced. See https://github.com/rclone/rclone/issues/7652 for more
+info.
Important: Since this can cause data loss, test
first with the --dry-run or the
--interactive/-i flag.
Note: Use the
-P/--progress flag to view real-time transfer
statistics.
-Logger Flags
+Logger Flags
The --differ, --missing-on-dst,
--missing-on-src, --match and
--error flags write paths, one per line, to the file name
@@ -1816,7 +1833,7 @@ scenarios are not currently supported:
Note also that each file is logged during execution, as opposed to
after, so it is most useful as a predictor of what SHOULD happen to each
-file (which may or may not match what actually DID.)
+file (which may or may not match what actually DID).
rclone move source:path dest:path [flags]
Options
--absolute Put a leading / in front of path names
@@ -1843,7 +1860,7 @@ href="https://rclone.org/flags/">global flags page for global
options not listed here.
Copy Options
Flags for anything which can copy a file
- --check-first Do all the checks before starting transfers
+ --check-first Do all the checks before starting transfers
-c, --checksum Check for changes with size & checksum (if available, or fallback to size only)
--compare-dest stringArray Include additional server-side paths during comparison
--copy-dest stringArray Implies --compare-dest but also copies files from paths into destination
@@ -1879,12 +1896,12 @@ options not listed here.
-u, --update Skip files that are newer on the destination
Important Options
Important flags useful for most commands
- -n, --dry-run Do a trial run with no permanent changes
+ -n, --dry-run Do a trial run with no permanent changes
-i, --interactive Enable interactive mode
-v, --verbose count Print lots more stuff (repeat for more)
Filter Options
Flags for filtering directory listings
- --delete-excluded Delete files on dest excluded from sync
+ --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
--exclude-if-present stringArray Exclude directories if filename is present
@@ -1909,13 +1926,16 @@ options not listed here.
--min-size SizeSuffix Only transfer files bigger than this in KiB or suffix B|K|M|G|T|P (default off)
Listing Options
Flags for listing directories
- --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
+ --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
--fast-list Use recursive list if available; uses more memory but fewer transactions
See Also
+
+
- rclone - Show help
for rclone commands, flags and backends.
+
rclone delete
Remove the files in path.
Synopsis
@@ -1933,10 +1953,12 @@ href="https://rclone.org/commands/rclone_rmdirs/">rmdirs to delete
empty directories only.
For example, to delete all files bigger than 100 MiB, you may first
want to check what would be deleted (use either):
-rclone --min-size 100M lsl remote:path
-rclone --dry-run --min-size 100M delete remote:path
+rclone --min-size 100M lsl remote:path
+rclone --dry-run --min-size 100M delete remote:path
Then proceed with the actual delete:
-rclone --min-size 100M delete remote:path
+rclone --min-size 100M delete remote:path
That reads "delete everything with a minimum size of 100 MiB", hence
delete all files bigger than 100 MiB.
Important: Since this can cause data loss, test
@@ -1951,12 +1973,12 @@ href="https://rclone.org/flags/">global flags page for global
options not listed here.
Important Options
Important flags useful for most commands
- -n, --dry-run Do a trial run with no permanent changes
+ -n, --dry-run Do a trial run with no permanent changes
-i, --interactive Enable interactive mode
-v, --verbose count Print lots more stuff (repeat for more)
Filter Options
Flags for filtering directory listings
- --delete-excluded Delete files on dest excluded from sync
+ --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
--exclude-if-present stringArray Exclude directories if filename is present
@@ -1981,13 +2003,16 @@ options not listed here.
--min-size SizeSuffix Only transfer files bigger than this in KiB or suffix B|K|M|G|T|P (default off)
Listing Options
Flags for listing directories
- --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
+ --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
--fast-list Use recursive list if available; uses more memory but fewer transactions
See Also
+
+
- rclone - Show help
for rclone commands, flags and backends.
+
rclone purge
Remove the path and all of its contents.
Synopsis
@@ -2013,14 +2038,17 @@ href="https://rclone.org/flags/">global flags page for global
options not listed here.
Important Options
Important flags useful for most commands
- -n, --dry-run Do a trial run with no permanent changes
+ -n, --dry-run Do a trial run with no permanent changes
-i, --interactive Enable interactive mode
-v, --verbose count Print lots more stuff (repeat for more)
See Also
+
+
- rclone - Show help
for rclone commands, flags and backends.
+
rclone mkdir
Make the path if it doesn't already exist.
rclone mkdir remote:path [flags]
@@ -2031,14 +2059,17 @@ href="https://rclone.org/flags/">global flags page for global
options not listed here.
Important Options
Important flags useful for most commands
- -n, --dry-run Do a trial run with no permanent changes
+ -n, --dry-run Do a trial run with no permanent changes
-i, --interactive Enable interactive mode
-v, --verbose count Print lots more stuff (repeat for more)
See Also
+
+
- rclone - Show help
for rclone commands, flags and backends.
+
rclone rmdir
Remove the empty directory at path.
Synopsis
@@ -2057,14 +2088,17 @@ href="https://rclone.org/flags/">global flags page for global
options not listed here.
Important Options
Important flags useful for most commands
- -n, --dry-run Do a trial run with no permanent changes
+ -n, --dry-run Do a trial run with no permanent changes
-i, --interactive Enable interactive mode
-v, --verbose count Print lots more stuff (repeat for more)
See Also
+
+
- rclone - Show help
for rclone commands, flags and backends.
+
rclone check
Checks the files in the source and destination match.
Synopsis
@@ -2131,10 +2165,10 @@ href="https://rclone.org/flags/">global flags page for global
options not listed here.
Check Options
Flags used for check commands
- --max-backlog int Maximum number of objects in sync or check backlog (default 10000)
+ --max-backlog int Maximum number of objects in sync or check backlog (default 10000)
Filter Options
Flags for filtering directory listings
- --delete-excluded Delete files on dest excluded from sync
+ --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
--exclude-if-present stringArray Exclude directories if filename is present
@@ -2159,24 +2193,28 @@ options not listed here.
--min-size SizeSuffix Only transfer files bigger than this in KiB or suffix B|K|M|G|T|P (default off)
Listing Options
Flags for listing directories
- --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
+ --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
--fast-list Use recursive list if available; uses more memory but fewer transactions
See Also
+
+
- rclone - Show help
for rclone commands, flags and backends.
+
rclone ls
List the objects in the path with size and path.
Synopsis
Lists the objects in the source path to standard output in a human
readable format with size and path. Recurses by default.
-Eg
-$ rclone ls swift:bucket
- 60295 bevajer5jef
- 90613 canole
- 94467 diwogej7
- 37600 fubuwic
+E.g.
+$ rclone ls swift:bucket
+ 60295 bevajer5jef
+ 90613 canole
+ 94467 diwogej7
+ 37600 fubuwic
Any of the filtering options can be applied to this command.
There are several related list commands
@@ -2209,7 +2247,7 @@ href="https://rclone.org/flags/">global flags page for global
options not listed here.
Filter Options
Flags for filtering directory listings
-
--delete-excluded Delete files on dest excluded from sync
+ --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
--exclude-if-present stringArray Exclude directories if filename is present
@@ -2234,13 +2272,16 @@ options not listed here.
--min-size SizeSuffix Only transfer files bigger than this in KiB or suffix B|K|M|G|T|P (default off)
Listing Options
Flags for listing directories
- --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
+ --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
--fast-list Use recursive list if available; uses more memory but fewer transactions
See Also
+
+
- rclone - Show help
for rclone commands, flags and backends.
+
rclone lsd
List all directories/containers/buckets in the path.
Synopsis
@@ -2249,15 +2290,17 @@ recurse by default. Use the -R flag to recurse.
This command lists the total size of the directory (if known, -1 if
not), the modification time (if known, the current time if not), the
number of objects in the directory (if known, -1 if not) and the name of
-the directory, Eg
-$ rclone lsd swift:
- 494000 2018-04-26 08:43:20 10000 10000files
- 65 2018-04-26 08:43:20 1 1File
+the directory, E.g.
+$ rclone lsd swift:
+ 494000 2018-04-26 08:43:20 10000 10000files
+ 65 2018-04-26 08:43:20 1 1File
Or
-$ rclone lsd drive:test
- -1 2016-10-17 17:41:53 -1 1000files
- -1 2017-01-03 14:40:54 -1 2500files
- -1 2017-07-08 14:39:28 -1 4000files
+$ rclone lsd drive:test
+ -1 2016-10-17 17:41:53 -1 1000files
+ -1 2017-01-03 14:40:54 -1 2500files
+ -1 2017-07-08 14:39:28 -1 4000files
If you just want the directory names use
rclone lsf --dirs-only.
Any of the filtering options can be applied to this command.
@@ -2293,7 +2336,7 @@ href="https://rclone.org/flags/">global flags page for global
options not listed here.
Filter Options
Flags for filtering directory listings
- --delete-excluded Delete files on dest excluded from sync
+ --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
--exclude-if-present stringArray Exclude directories if filename is present
@@ -2318,25 +2361,29 @@ options not listed here.
--min-size SizeSuffix Only transfer files bigger than this in KiB or suffix B|K|M|G|T|P (default off)
Listing Options
Flags for listing directories
- --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
+ --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
--fast-list Use recursive list if available; uses more memory but fewer transactions
See Also
+
+
- rclone - Show help
for rclone commands, flags and backends.
+
rclone lsl
List the objects in path with modification time, size and path.
Synopsis
Lists the objects in the source path to standard output in a human
readable format with modification time, size and path. Recurses by
default.
-Eg
-$ rclone lsl swift:bucket
- 60295 2016-06-25 18:55:41.062626927 bevajer5jef
- 90613 2016-06-25 18:55:43.302607074 canole
- 94467 2016-06-25 18:55:43.046609333 diwogej7
- 37600 2016-06-25 18:55:40.814629136 fubuwic
+E.g.
+$ rclone lsl swift:bucket
+ 60295 2016-06-25 18:55:41.062626927 bevajer5jef
+ 90613 2016-06-25 18:55:43.302607074 canole
+ 94467 2016-06-25 18:55:43.046609333 diwogej7
+ 37600 2016-06-25 18:55:40.814629136 fubuwic
Any of the filtering options can be applied to this command.
There are several related list commands
@@ -2369,7 +2416,7 @@ href="https://rclone.org/flags/">global flags page for global
options not listed here.
Filter Options
Flags for filtering directory listings
-
--delete-excluded Delete files on dest excluded from sync
+ --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
--exclude-if-present stringArray Exclude directories if filename is present
@@ -2394,13 +2441,16 @@ options not listed here.
--min-size SizeSuffix Only transfer files bigger than this in KiB or suffix B|K|M|G|T|P (default off)
Listing Options
Flags for listing directories
- --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
+ --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
--fast-list Use recursive list if available; uses more memory but fewer transactions
See Also
+
+
- rclone - Show help
for rclone commands, flags and backends.
+
rclone md5sum
Produces an md5sum file for all the objects in the path.
Synopsis
@@ -2430,7 +2480,7 @@ href="https://rclone.org/flags/">global flags page for global
options not listed here.
Filter Options
Flags for filtering directory listings
- --delete-excluded Delete files on dest excluded from sync
+ --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
--exclude-if-present stringArray Exclude directories if filename is present
@@ -2455,13 +2505,16 @@ options not listed here.
--min-size SizeSuffix Only transfer files bigger than this in KiB or suffix B|K|M|G|T|P (default off)
Listing Options
Flags for listing directories
- --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
+ --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
--fast-list Use recursive list if available; uses more memory but fewer transactions
See Also
+
+
- rclone - Show help
for rclone commands, flags and backends.
+
rclone sha1sum
Produces an sha1sum file for all the objects in the path.
Synopsis
@@ -2493,7 +2546,7 @@ href="https://rclone.org/flags/">global flags page for global
options not listed here.
Filter Options
Flags for filtering directory listings
- --delete-excluded Delete files on dest excluded from sync
+ --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
--exclude-if-present stringArray Exclude directories if filename is present
@@ -2518,13 +2571,16 @@ options not listed here.
--min-size SizeSuffix Only transfer files bigger than this in KiB or suffix B|K|M|G|T|P (default off)
Listing Options
Flags for listing directories
- --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
+ --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
--fast-list Use recursive list if available; uses more memory but fewer transactions
See Also
+
+
- rclone - Show help
for rclone commands, flags and backends.
+
rclone size
Prints the total size and number of objects in remote:path.
Synopsis
@@ -2551,7 +2607,7 @@ href="https://rclone.org/flags/">global flags page for global
options not listed here.
Filter Options
Flags for filtering directory listings
- --delete-excluded Delete files on dest excluded from sync
+ --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
--exclude-if-present stringArray Exclude directories if filename is present
@@ -2576,13 +2632,16 @@ options not listed here.
--min-size SizeSuffix Only transfer files bigger than this in KiB or suffix B|K|M|G|T|P (default off)
Listing Options
Flags for listing directories
- --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
+ --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
--fast-list Use recursive list if available; uses more memory but fewer transactions
See Also
+
+
- rclone - Show help
for rclone commands, flags and backends.
+
rclone version
Show the version number.
Synopsis
@@ -2590,30 +2649,33 @@ for rclone commands, flags and backends.
and architecture, the runtime OS and kernel version and bitness, build
tags and the type of executable (static or dynamic).
For example:
-$ rclone version
-rclone v1.55.0
-- os/version: ubuntu 18.04 (64 bit)
-- os/kernel: 4.15.0-136-generic (x86_64)
-- os/type: linux
-- os/arch: amd64
-- go/version: go1.16
-- go/linking: static
-- go/tags: none
+$ rclone version
+rclone v1.55.0
+- os/version: ubuntu 18.04 (64 bit)
+- os/kernel: 4.15.0-136-generic (x86_64)
+- 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
-latest: 1.42 (released 2018-06-16)
-beta: 1.42.0.5 (released 2018-06-17)
+$ rclone version --check
+yours: 1.42.0.6
+latest: 1.42 (released 2018-06-16)
+beta: 1.42.0.5 (released 2018-06-17)
Or
-$ rclone version --check
-yours: 1.41
-latest: 1.42 (released 2018-06-16)
- upgrade: https://downloads.rclone.org/v1.42
-beta: 1.42.0.5 (released 2018-06-17)
- upgrade: https://beta.rclone.org/v1.42-005-g56e1e820
+$ rclone version --check
+yours: 1.41
+latest: 1.42 (released 2018-06-16)
+ upgrade: https://downloads.rclone.org/v1.42
+beta: 1.42.0.5 (released 2018-06-17)
+ upgrade: https://beta.rclone.org/v1.42-005-g56e1e820
If you supply the --deps flag then rclone will print a list of all
the packages it depends on and their versions along with some other
information about the build.
@@ -2625,10 +2687,13 @@ information about the build.
See the global flags page for
global options not listed here.
See Also
+
+
- rclone - Show help
for rclone commands, flags and backends.
+
rclone cleanup
Clean up the remote if possible.
Synopsis
@@ -2642,14 +2707,17 @@ href="https://rclone.org/flags/">global flags page for global
options not listed here.
Important Options
Important flags useful for most commands
- -n, --dry-run Do a trial run with no permanent changes
+ -n, --dry-run Do a trial run with no permanent changes
-i, --interactive Enable interactive mode
-v, --verbose count Print lots more stuff (repeat for more)
See Also
+
+
- rclone - Show help
for rclone commands, flags and backends.
+
rclone dedupe
Interactively find duplicate filenames and delete/rename them.
Synopsis
@@ -2686,46 +2754,49 @@ first with the --dry-run or the
--interactive/-i flag.
Here is an example run.
Before - with duplicates
-$ rclone lsl drive:dupes
- 6048320 2016-03-05 16:23:16.798000000 one.txt
- 6048320 2016-03-05 16:23:11.775000000 one.txt
- 564374 2016-03-05 16:23:06.731000000 one.txt
- 6048320 2016-03-05 16:18:26.092000000 one.txt
- 6048320 2016-03-05 16:22:46.185000000 two.txt
- 1744073 2016-03-05 16:22:38.104000000 two.txt
- 564374 2016-03-05 16:22:52.118000000 two.txt
+$ rclone lsl drive:dupes
+ 6048320 2016-03-05 16:23:16.798000000 one.txt
+ 6048320 2016-03-05 16:23:11.775000000 one.txt
+ 564374 2016-03-05 16:23:06.731000000 one.txt
+ 6048320 2016-03-05 16:18:26.092000000 one.txt
+ 6048320 2016-03-05 16:22:46.185000000 two.txt
+ 1744073 2016-03-05 16:22:38.104000000 two.txt
+ 564374 2016-03-05 16:22:52.118000000 two.txt
Now the dedupe session
-$ rclone dedupe drive:dupes
-2016/03/05 16:24:37 Google drive root 'dupes': Looking for duplicates using interactive mode.
-one.txt: Found 4 files with duplicate names
-one.txt: Deleting 2/3 identical duplicates (MD5 "1eedaa9fe86fd4b8632e2ac549403b36")
-one.txt: 2 duplicates remain
- 1: 6048320 bytes, 2016-03-05 16:23:16.798000000, MD5 1eedaa9fe86fd4b8632e2ac549403b36
- 2: 564374 bytes, 2016-03-05 16:23:06.731000000, MD5 7594e7dc9fc28f727c42ee3e0749de81
-s) Skip and do nothing
-k) Keep just one (choose which in next step)
-r) Rename all to be different (by changing file.jpg to file-1.jpg)
-s/k/r> k
-Enter the number of the file to keep> 1
-one.txt: Deleted 1 extra copies
-two.txt: Found 3 files with duplicate names
-two.txt: 3 duplicates remain
- 1: 564374 bytes, 2016-03-05 16:22:52.118000000, MD5 7594e7dc9fc28f727c42ee3e0749de81
- 2: 6048320 bytes, 2016-03-05 16:22:46.185000000, MD5 1eedaa9fe86fd4b8632e2ac549403b36
- 3: 1744073 bytes, 2016-03-05 16:22:38.104000000, MD5 851957f7fb6f0bc4ce76be966d336802
-s) Skip and do nothing
-k) Keep just one (choose which in next step)
-r) Rename all to be different (by changing file.jpg to file-1.jpg)
-s/k/r> r
-two-1.txt: renamed from: two.txt
-two-2.txt: renamed from: two.txt
-two-3.txt: renamed from: two.txt
+$ rclone dedupe drive:dupes
+2016/03/05 16:24:37 Google drive root 'dupes': Looking for duplicates using interactive mode.
+one.txt: Found 4 files with duplicate names
+one.txt: Deleting 2/3 identical duplicates (MD5 "1eedaa9fe86fd4b8632e2ac549403b36")
+one.txt: 2 duplicates remain
+ 1: 6048320 bytes, 2016-03-05 16:23:16.798000000, MD5 1eedaa9fe86fd4b8632e2ac549403b36
+ 2: 564374 bytes, 2016-03-05 16:23:06.731000000, MD5 7594e7dc9fc28f727c42ee3e0749de81
+s) Skip and do nothing
+k) Keep just one (choose which in next step)
+r) Rename all to be different (by changing file.jpg to file-1.jpg)
+s/k/r> k
+Enter the number of the file to keep> 1
+one.txt: Deleted 1 extra copies
+two.txt: Found 3 files with duplicate names
+two.txt: 3 duplicates remain
+ 1: 564374 bytes, 2016-03-05 16:22:52.118000000, MD5 7594e7dc9fc28f727c42ee3e0749de81
+ 2: 6048320 bytes, 2016-03-05 16:22:46.185000000, MD5 1eedaa9fe86fd4b8632e2ac549403b36
+ 3: 1744073 bytes, 2016-03-05 16:22:38.104000000, MD5 851957f7fb6f0bc4ce76be966d336802
+s) Skip and do nothing
+k) Keep just one (choose which in next step)
+r) Rename all to be different (by changing file.jpg to file-1.jpg)
+s/k/r> r
+two-1.txt: renamed from: two.txt
+two-2.txt: renamed from: two.txt
+two-3.txt: renamed from: two.txt
The result being
-$ rclone lsl drive:dupes
- 6048320 2016-03-05 16:23:16.798000000 one.txt
- 564374 2016-03-05 16:22:52.118000000 two-1.txt
- 6048320 2016-03-05 16:22:46.185000000 two-2.txt
- 1744073 2016-03-05 16:22:38.104000000 two-3.txt
+$ rclone lsl drive:dupes
+ 6048320 2016-03-05 16:23:16.798000000 one.txt
+ 564374 2016-03-05 16:22:52.118000000 two-1.txt
+ 6048320 2016-03-05 16:22:46.185000000 two-2.txt
+ 1744073 2016-03-05 16:22:38.104000000 two-3.txt
Dedupe can be run non interactively using the
--dedupe-mode flag or by using an extra parameter with the
same value
@@ -2750,9 +2821,11 @@ only and changes nothing.
For example, to rename all the identically named photos in your
Google Photos directory, do
-rclone dedupe --dedupe-mode rename "drive:Google Photos"
+rclone dedupe --dedupe-mode rename "drive:Google Photos"
Or
-rclone dedupe rename "drive:Google Photos"
+rclone dedupe rename "drive:Google Photos"
rclone dedupe [mode] remote:path [flags]
Options
--by-hash Find identical hashes rather than names
@@ -2763,21 +2836,24 @@ href="https://rclone.org/flags/">global flags page for global
options not listed here.
Important Options
Important flags useful for most commands
- -n, --dry-run Do a trial run with no permanent changes
+ -n, --dry-run Do a trial run with no permanent changes
-i, --interactive Enable interactive mode
-v, --verbose count Print lots more stuff (repeat for more)
See Also
+
+
- rclone - Show help
for rclone commands, flags and backends.
+
rclone about
Get quota information from the remote.
Synopsis
Prints quota information about a remote to standard output. The
output is typically used, free, quota and trash contents.
E.g. Typical output from rclone about remote: is:
-Total: 17 GiB
+Total: 17 GiB
Used: 7.444 GiB
Free: 1.315 GiB
Trashed: 100.000 MiB
@@ -2795,20 +2871,21 @@ Photos).
All sizes are in number of bytes.
Applying a --full flag to the command prints the bytes
in full, e.g.
-Total: 18253611008
+Total: 18253611008
Used: 7993453766
Free: 1411001220
Trashed: 104857602
Other: 8849156022
A --json flag generates conveniently machine-readable
output, e.g.
-{
- "total": 18253611008,
- "used": 7993453766,
- "trashed": 104857602,
- "other": 8849156022,
- "free": 1411001220
-}
+{
+ "total": 18253611008,
+ "used": 7993453766,
+ "trashed": 104857602,
+ "other": 8849156022,
+ "free": 1411001220
+}
Not all backends print all fields. Information is not included if it
is not provided by a backend. Where the value is unlimited it is
omitted.
@@ -2823,19 +2900,26 @@ href="https://rclone.org/overview/#optional-features">documentation.
See the global flags page for
global options not listed here.
See Also
+
+
- rclone - Show help
for rclone commands, flags and backends.
+
rclone authorize
Remote authorization.
Synopsis
Remote authorization. Used to authorize a remote or headless rclone
from a machine with a browser - use as instructed by rclone config.
-The command requires 1-3 arguments: - fs name (e.g., "drive", "s3",
-etc.) - Either a base64 encoded JSON blob obtained from a previous
-rclone config session - Or a client_id and client_secret pair obtained
-from the remote service
+The command requires 1-3 arguments:
+
+- fs name (e.g., "drive", "s3", etc.)
+- Either a base64 encoded JSON blob obtained from a previous rclone
+config session
+- Or a client_id and client_secret pair obtained from the remote
+service
+
Use --auth-no-open-browser to prevent rclone to open auth link in
default browser automatically.
Use --template to generate HTML output via a custom Go template. If a
@@ -2849,10 +2933,13 @@ template is used.
See the global flags page for
global options not listed here.
See Also
+
+
- rclone - Show help
for rclone commands, flags and backends.
+
rclone backend
Run a backend-specific command.
Synopsis
@@ -2860,18 +2947,22 @@ for rclone commands, flags and backends.
for "help" and "features") are defined by the backends and you should
see the backend docs for definitions.
You can discover what commands a backend implements by using
-rclone backend help remote:
-rclone backend help <backendname>
+rclone backend help remote:
+rclone backend help <backendname>
You can also discover information about the backend using (see operations/fsinfo in
the remote control docs for more info).
-rclone backend features remote:
+rclone backend features remote:
Pass options to the backend command with -o. This should be key=value
or key, e.g.:
-rclone backend stats remote:path stats -o format=json -o long
+rclone backend stats remote:path stats -o format=json -o long
Pass arguments to the backend by placing them on the end of the
line
-rclone backend cleanup remote:path file1 file2 file3
+rclone backend cleanup remote:path file1 file2 file3
Note to run these commands on a running backend then see backend/command in the
rc docs.
@@ -2885,14 +2976,17 @@ href="https://rclone.org/flags/">global flags page for global
options not listed here.
Important Options
Important flags useful for most commands
- -n, --dry-run Do a trial run with no permanent changes
+ -n, --dry-run Do a trial run with no permanent changes
-i, --interactive Enable interactive mode
-v, --verbose count Print lots more stuff (repeat for more)
See Also
+
+
- rclone - Show help
for rclone commands, flags and backends.
+
rclone bisync
Perform bidirectional synchronization between two paths.
Synopsis
@@ -2900,10 +2994,13 @@ for rclone commands, flags and backends.
Bisync provides a
bidirectional cloud sync solution in rclone. It retains the Path1 and
Path2 filesystem listings from the prior run. On each successive run it
-will: - list files on Path1 and Path2, and check for changes on each
-side. Changes include New, Newer,
-Older, and Deleted files. - Propagate changes
-on Path1 to Path2, and vice-versa.
+will:
+
+- list files on Path1 and Path2, and check for changes on each side.
+Changes include
New, Newer,
+Older, and Deleted files.
+- Propagate changes on Path1 to Path2, and vice-versa.
+
Bisync is considered an advanced command, so use
with care. Make sure you have read and understood the entire manual (especially the global flags page for global
options not listed here.
Copy Options
Flags for anything which can copy a file
- --check-first Do all the checks before starting transfers
+ --check-first Do all the checks before starting transfers
-c, --checksum Check for changes with size & checksum (if available, or fallback to size only)
--compare-dest stringArray Include additional server-side paths during comparison
--copy-dest stringArray Implies --compare-dest but also copies files from paths into destination
@@ -2980,12 +3077,12 @@ options not listed here.
-u, --update Skip files that are newer on the destination
Important Options
Important flags useful for most commands
- -n, --dry-run Do a trial run with no permanent changes
+ -n, --dry-run Do a trial run with no permanent changes
-i, --interactive Enable interactive mode
-v, --verbose count Print lots more stuff (repeat for more)
Filter Options
Flags for filtering directory listings
- --delete-excluded Delete files on dest excluded from sync
+ --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
--exclude-if-present stringArray Exclude directories if filename is present
@@ -3009,21 +3106,27 @@ options not listed here.
--min-age Duration Only transfer files older than this in s or suffix ms|s|m|h|d|w|M|y (default off)
--min-size SizeSuffix Only transfer files bigger than this in KiB or suffix B|K|M|G|T|P (default off)
See Also
+
+
- rclone - Show help
for rclone commands, flags and backends.
+
rclone cat
Concatenates any files and sends them to stdout.
Synopsis
Sends any files to standard output.
You can use it like this to output a single file
-rclone cat remote:path/to/file
+rclone cat remote:path/to/file
Or like this to output any file in dir or its subdirectories.
-rclone cat remote:path/to/dir
+rclone cat remote:path/to/dir
Or like this to output any .txt files in dir or its
subdirectories.
-rclone --include "*.txt" cat remote:path/to/dir
+rclone --include "*.txt" cat remote:path/to/dir
Use the --head flag to print characters only at the
start, --tail for the end and --offset and
--count to print a section in the middle. Note that if
@@ -3035,9 +3138,11 @@ between files. Be sure to shell-escape special characters. For example,
to print a newline between files, use:
bash:
-rclone --include "*.txt" --separator $'\n' cat remote:path/to/dir
+rclone --include "*.txt" --separator $'\n' cat remote:path/to/dir
powershell:
-rclone --include "*.txt" --separator "`n" cat remote:path/to/dir
+rclone --include "*.txt" --separator "`n" cat remote:path/to/dir
rclone cat remote:path [flags]
Options
@@ -3053,7 +3158,7 @@ href="https://rclone.org/flags/">global flags page for global
options not listed here.
Filter Options
Flags for filtering directory listings
- --delete-excluded Delete files on dest excluded from sync
+ --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
--exclude-if-present stringArray Exclude directories if filename is present
@@ -3078,13 +3183,16 @@ options not listed here.
--min-size SizeSuffix Only transfer files bigger than this in KiB or suffix B|K|M|G|T|P (default off)
Listing Options
Flags for listing directories
- --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
+ --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
--fast-list Use recursive list if available; uses more memory but fewer transactions
See Also
+
+
- rclone - Show help
for rclone commands, flags and backends.
+
rclone checksum
Checks the files in the destination against a SUM file.
Synopsis
@@ -3145,7 +3253,7 @@ href="https://rclone.org/flags/">global flags page for global
options not listed here.
Filter Options
Flags for filtering directory listings
- --delete-excluded Delete files on dest excluded from sync
+ --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
--exclude-if-present stringArray Exclude directories if filename is present
@@ -3170,13 +3278,16 @@ options not listed here.
--min-size SizeSuffix Only transfer files bigger than this in KiB or suffix B|K|M|G|T|P (default off)
Listing Options
Flags for listing directories
- --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
+ --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
--fast-list Use recursive list if available; uses more memory but fewer transactions
See Also
+
+
- rclone - Show help
for rclone commands, flags and backends.
+
rclone completion
Output completion script for a given shell.
Synopsis
@@ -3187,6 +3298,8 @@ for rclone commands, flags and backends.
See the global flags page for
global options not listed here.
See Also
+
+
- rclone - Show help
for rclone commands, flags and backends.
@@ -3201,14 +3314,17 @@ rclone.
- rclone
completion zsh - Output zsh completion script for rclone.
+
rclone completion bash
Output bash completion script for rclone.
Synopsis
Generates a bash shell autocompletion script for rclone.
By default, when run without any arguments,
-rclone completion bash
+rclone completion bash
the generated script will be written to
-/etc/bash_completion.d/rclone
+/etc/bash_completion.d/rclone
and so rclone will probably need to be run as root, or with sudo.
If you supply a path to a file as the command line argument, then the
generated script will be written to that file, in which case you should
@@ -3217,7 +3333,8 @@ not need root privileges.
If you have installed the script into the default location, you can
logout and login again to use the autocompletion script.
Alternatively, you can source the script directly
-. /path/to/my_bash_completion_scripts/rclone
+. /path/to/my_bash_completion_scripts/rclone
and the autocompletion functionality will be added to your current
shell.
rclone completion bash [output_file] [flags]
@@ -3226,20 +3343,25 @@ shell.
See the global flags page for
global options not listed here.
See Also
+
+
- rclone
completion - Output completion script for a given shell.
+
rclone completion fish
Output fish completion script for rclone.
Synopsis
Generates a fish autocompletion script for rclone.
This writes to /etc/fish/completions/rclone.fish by default so will
probably need to be run with sudo or as root, e.g.
-sudo rclone completion fish
+sudo rclone completion fish
Logout and login again to use the autocompletion scripts, or source
them directly
-. /etc/fish/completions/rclone.fish
+. /etc/fish/completions/rclone.fish
If you supply a command line argument the script will be written
there.
If output_file is "-", then the output will be written to stdout.
@@ -3249,16 +3371,20 @@ there.
See the global flags page for
global options not listed here.
See Also
+
+
- rclone
completion - Output completion script for a given shell.
+
rclone completion powershell
Output powershell completion script for rclone.
Synopsis
Generate the autocompletion script for powershell.
To load completions in your current shell session:
-rclone completion powershell | Out-String | Invoke-Expression
+rclone completion powershell | Out-String | Invoke-Expression
To load completions for every new session, add the output of the
above command to your powershell profile.
If output_file is "-" or missing, then the output will be written to
@@ -3269,20 +3395,25 @@ stdout.
See the global flags page for
global options not listed here.
See Also
+
+
- rclone
completion - Output completion script for a given shell.
+
rclone completion zsh
Output zsh completion script for rclone.
Synopsis
Generates a zsh autocompletion script for rclone.
This writes to /usr/share/zsh/vendor-completions/_rclone by default
so will probably need to be run with sudo or as root, e.g.
-sudo rclone completion zsh
+sudo rclone completion zsh
Logout and login again to use the autocompletion scripts, or source
them directly
-autoload -U compinit && compinit
+autoload -U compinit && compinit
If you supply a command line argument the script will be written
there.
If output_file is "-", then the output will be written to stdout.
@@ -3292,10 +3423,13 @@ there.
See the global flags page for
global options not listed here.
See Also
+
+
- rclone
completion - Output completion script for a given shell.
+
rclone config create
Create a new remote with name, type and options.
Synopsis
@@ -3304,11 +3438,13 @@ options. The options should be passed in pairs of key
value or as key=value.
For example, to make a swift remote of name myremote using auto
config you would do:
-rclone config create myremote swift env_auth true
-rclone config create myremote swift env_auth=true
+rclone config create myremote swift env_auth true
+rclone config create myremote swift env_auth=true
So for example if you wanted to configure a Google Drive remote but
using remote authorization you would do this:
-rclone config create mydrive drive config_is_local=false
+rclone config create mydrive drive config_is_local=false
Note that if the config process would normally ask a question the
default is taken (unless --non-interactive is used). Each
time that happens rclone will print or DEBUG a message saying how to
@@ -3331,29 +3467,30 @@ text based configuration questions. If this flag is set, and rclone
needs to ask the user a question, a JSON blob will be returned with the
question in it.
This will look something like (some irrelevant detail removed):
-{
- "State": "*oauth-islocal,teamdrive,,",
- "Option": {
- "Name": "config_is_local",
- "Help": "Use web browser to automatically authenticate rclone with remote?\n * Say Y if the machine running rclone has a web browser you can use\n * Say N if running rclone on a (remote) machine without web browser access\nIf not sure try Y. If Y failed, try N.\n",
- "Default": true,
- "Examples": [
- {
- "Value": "true",
- "Help": "Yes"
- },
- {
- "Value": "false",
- "Help": "No"
- }
- ],
- "Required": false,
- "IsPassword": false,
- "Type": "bool",
- "Exclusive": true,
- },
- "Error": "",
-}
+{
+ "State": "*oauth-islocal,teamdrive,,",
+ "Option": {
+ "Name": "config_is_local",
+ "Help": "Use web browser to automatically authenticate rclone with remote?\n * Say Y if the machine running rclone has a web browser you can use\n * Say N if running rclone on a (remote) machine without web browser access\nIf not sure try Y. If Y failed, try N.\n",
+ "Default": true,
+ "Examples": [
+ {
+ "Value": "true",
+ "Help": "Yes"
+ },
+ {
+ "Value": "false",
+ "Help": "No"
+ }
+ ],
+ "Required": false,
+ "IsPassword": false,
+ "Type": "bool",
+ "Exclusive": true,
+ },
+ "Error": "",
+}
The format of Option is the same as returned by
rclone config providers. The question should be asked to
the user and returned to rclone as the --result option
@@ -3379,7 +3516,8 @@ edited as such
If Error is set then it should be shown to the user at
the same time as the question.
-rclone config update name --continue --state "*oauth-islocal,teamdrive,," --result "true"
+rclone config update name --continue --state "*oauth-islocal,teamdrive,," --result "true"
Note that when using --continue all passwords should be
passed in the clear (not obscured). Any default config values should be
passed in with each invocation of --continue.
@@ -3404,10 +3542,13 @@ this protocol as a readable demonstration.
See the global flags page for
global options not listed here.
See Also
+
+
- rclone
config - Enter an interactive configuration session.
+
rclone config delete
Delete an existing remote.
rclone config delete name [flags]
@@ -3416,10 +3557,13 @@ config - Enter an interactive configuration session.
See the global flags page for
global options not listed here.
See Also
+
+
- rclone
config - Enter an interactive configuration session.
+
rclone config disconnect
Disconnects user from remote
Synopsis
@@ -3433,10 +3577,13 @@ system.
See the global flags page for
global options not listed here.
See Also
+
+
- rclone
config - Enter an interactive configuration session.
+
rclone config dump
Dump the config file as JSON.
rclone config dump [flags]
@@ -3445,10 +3592,13 @@ config - Enter an interactive configuration session.
See the global flags page for
global options not listed here.
See Also
+
+
- rclone
config - Enter an interactive configuration session.
+
rclone config edit
Enter an interactive configuration session.
Synopsis
@@ -3461,10 +3611,13 @@ to protect your configuration.
See the global flags page for
global options not listed here.
See Also
+
+
- rclone
config - Enter an interactive configuration session.
+
rclone config encryption
set, remove and check the encryption for the config file
Synopsis
@@ -3475,6 +3628,8 @@ file using the subcommands below.
See the global flags page for
global options not listed here.
See Also
+
+
- rclone
config - Enter an interactive configuration session.
@@ -3491,6 +3646,7 @@ href="https://rclone.org/commands/rclone_config_encryption_set/">rclone
config encryption set - Set or change the config file encryption
password
+
rclone config encryption
check
Check that the config file is encrypted
@@ -3510,12 +3666,15 @@ code.
See the global flags page for
global options not listed here.
See Also
+
+
- rclone
config encryption - set, remove and check the encryption for the
config file
+
rclone config encryption
remove
Remove the config file encryption password
@@ -3533,12 +3692,15 @@ this command will do nothing.
See the global flags page for
global options not listed here.
See Also
+
+
- rclone
config encryption - set, remove and check the encryption for the
config file
+
rclone config encryption set
Set or change the config file encryption password
Synopsis
@@ -3563,12 +3725,15 @@ config file being on the disk briefly.
See the global flags page for
global options not listed here.
See Also
+
+
- rclone
config encryption - set, remove and check the encryption for the
config file
+
rclone config file
Show path of configuration file in use.
rclone config file [flags]
@@ -3577,10 +3742,13 @@ config file
See the global flags page for
global options not listed here.
See Also
+
+
- rclone
config - Enter an interactive configuration session.
+
rclone config password
Update password in an existing remote.
Synopsis
@@ -3590,8 +3758,9 @@ in pairs of key password or as
in clear (unobscured).
For example, to set password of a remote of name myremote you would
do:
-rclone config password myremote fieldname mypassword
-rclone config password myremote fieldname=mypassword
+rclone config password myremote fieldname mypassword
+rclone config password myremote fieldname=mypassword
This command is obsolete now that "config update" and "config create"
both support obscuring passwords directly.
rclone config password name [key value]+ [flags]
@@ -3600,10 +3769,13 @@ both support obscuring passwords directly.
See the global flags page for
global options not listed here.
See Also
+
+
- rclone
config - Enter an interactive configuration session.
+
rclone config paths
Show paths used for configuration, cache, temp etc.
rclone config paths [flags]
@@ -3612,10 +3784,13 @@ config - Enter an interactive configuration session.
See the global flags page for
global options not listed here.
See Also
+
+
- rclone
config - Enter an interactive configuration session.
+
rclone config providers
List in JSON format all the providers and options.
rclone config providers [flags]
@@ -3624,10 +3799,13 @@ config - Enter an interactive configuration session.
See the global flags page for
global options not listed here.
See Also
+
+
- rclone
config - Enter an interactive configuration session.
+
rclone config reconnect
Re-authenticates user with remote.
Synopsis
@@ -3641,10 +3819,13 @@ again.
See the global flags page for
global options not listed here.
See Also
+
+
- rclone
config - Enter an interactive configuration session.
+
rclone config redacted
Print redacted (decrypted) config file, or the redacted config for a
single remote.
@@ -3663,10 +3844,13 @@ be perfect.
See the global flags page for
global options not listed here.
See Also
+
+
- rclone
config - Enter an interactive configuration session.
+
rclone config show
Print (decrypted) config file, or the config for a single remote.
rclone config show [<remote>] [flags]
@@ -3675,10 +3859,13 @@ config - Enter an interactive configuration session.
See the global flags page for
global options not listed here.
See Also
+
+
- rclone
config - Enter an interactive configuration session.
+
rclone config touch
Ensure configuration file exists.
rclone config touch [flags]
@@ -3687,10 +3874,13 @@ config - Enter an interactive configuration session.
See the global flags page for
global options not listed here.
See Also
+
+
- rclone
config - Enter an interactive configuration session.
+
rclone config update
Update options in an existing remote.
Synopsis
@@ -3699,11 +3889,13 @@ pairs of key value or as
key=value.
For example, to update the env_auth field of a remote of name
myremote you would do:
-rclone config update myremote env_auth true
-rclone config update myremote env_auth=true
+rclone config update myremote env_auth true
+rclone config update myremote env_auth=true
If the remote uses OAuth the token will be updated, if you don't
require this add an extra parameter thus:
-rclone config update myremote env_auth=true config_refresh_token=false
+rclone config update myremote env_auth=true config_refresh_token=false
Note that if the config process would normally ask a question the
default is taken (unless --non-interactive is used). Each
time that happens rclone will print or DEBUG a message saying how to
@@ -3726,29 +3918,30 @@ text based configuration questions. If this flag is set, and rclone
needs to ask the user a question, a JSON blob will be returned with the
question in it.
This will look something like (some irrelevant detail removed):
-{
- "State": "*oauth-islocal,teamdrive,,",
- "Option": {
- "Name": "config_is_local",
- "Help": "Use web browser to automatically authenticate rclone with remote?\n * Say Y if the machine running rclone has a web browser you can use\n * Say N if running rclone on a (remote) machine without web browser access\nIf not sure try Y. If Y failed, try N.\n",
- "Default": true,
- "Examples": [
- {
- "Value": "true",
- "Help": "Yes"
- },
- {
- "Value": "false",
- "Help": "No"
- }
- ],
- "Required": false,
- "IsPassword": false,
- "Type": "bool",
- "Exclusive": true,
- },
- "Error": "",
-}
+{
+ "State": "*oauth-islocal,teamdrive,,",
+ "Option": {
+ "Name": "config_is_local",
+ "Help": "Use web browser to automatically authenticate rclone with remote?\n * Say Y if the machine running rclone has a web browser you can use\n * Say N if running rclone on a (remote) machine without web browser access\nIf not sure try Y. If Y failed, try N.\n",
+ "Default": true,
+ "Examples": [
+ {
+ "Value": "true",
+ "Help": "Yes"
+ },
+ {
+ "Value": "false",
+ "Help": "No"
+ }
+ ],
+ "Required": false,
+ "IsPassword": false,
+ "Type": "bool",
+ "Exclusive": true,
+ },
+ "Error": "",
+}
The format of Option is the same as returned by
rclone config providers. The question should be asked to
the user and returned to rclone as the --result option
@@ -3774,7 +3967,8 @@ edited as such
If Error is set then it should be shown to the user at
the same time as the question.
-rclone config update name --continue --state "*oauth-islocal,teamdrive,," --result "true"
+rclone config update name --continue --state "*oauth-islocal,teamdrive,," --result "true"
Note that when using --continue all passwords should be
passed in the clear (not obscured). Any default config values should be
passed in with each invocation of --continue.
@@ -3799,10 +3993,13 @@ this protocol as a readable demonstration.
See the global flags page for
global options not listed here.
See Also
+
+
- rclone
config - Enter an interactive configuration session.
+
rclone config userinfo
Prints info about logged in user of remote.
Synopsis
@@ -3815,10 +4012,13 @@ system.
See the global flags page for
global options not listed here.
See Also
+
+
- rclone
config - Enter an interactive configuration session.
+
rclone convmv
Convert file and directory names in place.
Synopsis
@@ -3859,7 +4059,7 @@ extension.
Removes XXXX if it appears at the end of the file name.
---name-transform regex=/pattern/replacement/
+--name-transform regex=pattern/replacement
Applies a regex-based transformation.
@@ -3875,211 +4075,252 @@ extension.
Truncates the file name to a maximum of N characters.
+--name-transform truncate_keep_extension=N
+Truncates the file name to a maximum of N characters while
+preserving the original file extension.
+
+
+--name-transform truncate_bytes=N
+Truncates the file name to a maximum of N bytes (not
+characters).
+
+
+--name-transform truncate_bytes_keep_extension=N
+Truncates the file name to a maximum of N bytes (not characters)
+while preserving the original file extension.
+
+
--name-transform base64encode
Encodes the file name in Base64.
-
+
--name-transform base64decode
Decodes a Base64-encoded file name.
-
+
--name-transform encoder=ENCODING
Converts the file name to the specified encoding (e.g., ISO-8859-1,
Windows-1252, Macintosh).
-
+
--name-transform decoder=ENCODING
Decodes the file name from the specified encoding.
-
+
--name-transform charmap=MAP
Applies a character mapping transformation.
-
+
--name-transform lowercase
Converts the file name to lowercase.
-
+
--name-transform uppercase
Converts the file name to UPPERCASE.
-
+
--name-transform titlecase
Converts the file name to Title Case.
-
+
--name-transform ascii
Strips non-ASCII characters.
-
+
--name-transform url
URL-encodes the file name.
-
+
--name-transform nfc
Converts the file name to NFC Unicode normalization form.
-
+
--name-transform nfd
Converts the file name to NFD Unicode normalization form.
-
+
--name-transform nfkc
Converts the file name to NFKC Unicode normalization form.
-
+
--name-transform nfkd
Converts the file name to NFKD Unicode normalization form.
-
+
--name-transform command=/path/to/my/programfile names.
-Executes an external program to transform
+Executes an external program to transform.
Conversion modes:
-none
-nfc
-nfd
-nfkc
-nfkd
-replace
-prefix
-suffix
-suffix_keep_extension
-trimprefix
-trimsuffix
-index
-date
-truncate
-base64encode
-base64decode
-encoder
-decoder
-ISO-8859-1
-Windows-1252
-Macintosh
-charmap
-lowercase
-uppercase
-titlecase
-ascii
-url
-regex
-command
+none
+nfc
+nfd
+nfkc
+nfkd
+replace
+prefix
+suffix
+suffix_keep_extension
+trimprefix
+trimsuffix
+index
+date
+truncate
+truncate_keep_extension
+truncate_bytes
+truncate_bytes_keep_extension
+base64encode
+base64decode
+encoder
+decoder
+ISO-8859-1
+Windows-1252
+Macintosh
+charmap
+lowercase
+uppercase
+titlecase
+ascii
+url
+regex
+command
Char maps:
-
-IBM-Code-Page-037
-IBM-Code-Page-437
-IBM-Code-Page-850
-IBM-Code-Page-852
-IBM-Code-Page-855
-Windows-Code-Page-858
-IBM-Code-Page-860
-IBM-Code-Page-862
-IBM-Code-Page-863
-IBM-Code-Page-865
-IBM-Code-Page-866
-IBM-Code-Page-1047
-IBM-Code-Page-1140
-ISO-8859-1
-ISO-8859-2
-ISO-8859-3
-ISO-8859-4
-ISO-8859-5
-ISO-8859-6
-ISO-8859-7
-ISO-8859-8
-ISO-8859-9
-ISO-8859-10
-ISO-8859-13
-ISO-8859-14
-ISO-8859-15
-ISO-8859-16
-KOI8-R
-KOI8-U
-Macintosh
-Macintosh-Cyrillic
-Windows-874
-Windows-1250
-Windows-1251
-Windows-1252
-Windows-1253
-Windows-1254
-Windows-1255
-Windows-1256
-Windows-1257
-Windows-1258
-X-User-Defined
+IBM-Code-Page-037
+IBM-Code-Page-437
+IBM-Code-Page-850
+IBM-Code-Page-852
+IBM-Code-Page-855
+Windows-Code-Page-858
+IBM-Code-Page-860
+IBM-Code-Page-862
+IBM-Code-Page-863
+IBM-Code-Page-865
+IBM-Code-Page-866
+IBM-Code-Page-1047
+IBM-Code-Page-1140
+ISO-8859-1
+ISO-8859-2
+ISO-8859-3
+ISO-8859-4
+ISO-8859-5
+ISO-8859-6
+ISO-8859-7
+ISO-8859-8
+ISO-8859-9
+ISO-8859-10
+ISO-8859-13
+ISO-8859-14
+ISO-8859-15
+ISO-8859-16
+KOI8-R
+KOI8-U
+Macintosh
+Macintosh-Cyrillic
+Windows-874
+Windows-1250
+Windows-1251
+Windows-1252
+Windows-1253
+Windows-1254
+Windows-1255
+Windows-1256
+Windows-1257
+Windows-1258
+X-User-Defined
Encoding masks:
-Asterisk
- BackQuote
- BackSlash
- Colon
- CrLf
- Ctl
- Del
- Dollar
- Dot
- DoubleQuote
- Exclamation
- Hash
- InvalidUtf8
- LeftCrLfHtVt
- LeftPeriod
- LeftSpace
- LeftTilde
- LtGt
- None
- Percent
- Pipe
- Question
- Raw
- RightCrLfHtVt
- RightPeriod
- RightSpace
- Semicolon
- SingleQuote
- Slash
- SquareBracket
+Asterisk
+BackQuote
+BackSlash
+Colon
+CrLf
+Ctl
+Del
+Dollar
+Dot
+DoubleQuote
+Exclamation
+Hash
+InvalidUtf8
+LeftCrLfHtVt
+LeftPeriod
+LeftSpace
+LeftTilde
+LtGt
+None
+Percent
+Pipe
+Question
+Raw
+RightCrLfHtVt
+RightPeriod
+RightSpace
+Semicolon
+SingleQuote
+Slash
+SquareBracket
Examples:
-rclone convmv "stories/The Quick Brown Fox!.txt" --name-transform "all,uppercase"
-// Output: STORIES/THE QUICK BROWN FOX!.TXT
-rclone convmv "stories/The Quick Brown Fox!.txt" --name-transform "all,replace=Fox:Turtle" --name-transform "all,replace=Quick:Slow"
-// Output: stories/The Slow Brown Turtle!.txt
-rclone convmv "stories/The Quick Brown Fox!.txt" --name-transform "all,base64encode"
-// Output: c3Rvcmllcw==/VGhlIFF1aWNrIEJyb3duIEZveCEudHh0
-rclone convmv "c3Rvcmllcw==/VGhlIFF1aWNrIEJyb3duIEZveCEudHh0" --name-transform "all,base64decode"
-// Output: stories/The Quick Brown Fox!.txt
-rclone convmv "stories/The Quick Brown 🦊 Fox Went to the Café!.txt" --name-transform "all,nfc"
-// Output: stories/The Quick Brown 🦊 Fox Went to the Café!.txt
-rclone convmv "stories/The Quick Brown 🦊 Fox Went to the Café!.txt" --name-transform "all,nfd"
-// Output: stories/The Quick Brown 🦊 Fox Went to the Café!.txt
-rclone convmv "stories/The Quick Brown 🦊 Fox!.txt" --name-transform "all,ascii"
-// Output: stories/The Quick Brown Fox!.txt
-rclone convmv "stories/The Quick Brown Fox!.txt" --name-transform "all,trimsuffix=.txt"
-// Output: stories/The Quick Brown Fox!
-rclone convmv "stories/The Quick Brown Fox!.txt" --name-transform "all,prefix=OLD_"
-// Output: OLD_stories/OLD_The Quick Brown Fox!.txt
-rclone convmv "stories/The Quick Brown 🦊 Fox Went to the Café!.txt" --name-transform "all,charmap=ISO-8859-7"
-// Output: stories/The Quick Brown _ Fox Went to the Caf_!.txt
-rclone convmv "stories/The Quick Brown Fox: A Memoir [draft].txt" --name-transform "all,encoder=Colon,SquareBracket"
-// Output: stories/The Quick Brown Fox: A Memoir [draft].txt
-rclone convmv "stories/The Quick Brown 🦊 Fox Went to the Café!.txt" --name-transform "all,truncate=21"
-// Output: stories/The Quick Brown 🦊 Fox
-rclone convmv "stories/The Quick Brown Fox!.txt" --name-transform "all,command=echo"
-// Output: stories/The Quick Brown Fox!.txt
-rclone convmv "stories/The Quick Brown Fox!" --name-transform "date=-{YYYYMMDD}"
-// Output: stories/The Quick Brown Fox!-20250618
-rclone convmv "stories/The Quick Brown Fox!" --name-transform "date=-{macfriendlytime}"
-// Output: stories/The Quick Brown Fox!-2025-06-18 0148PM
-rclone convmv "stories/The Quick Brown Fox!.txt" --name-transform "all,regex=[\\.\\w]/ab"
-// Output: ababababababab/ababab ababababab ababababab ababab!abababab
+rclone convmv "stories/The Quick Brown Fox!.txt" --name-transform "all,uppercase"
+// Output: STORIES/THE QUICK BROWN FOX!.TXT
+rclone convmv "stories/The Quick Brown Fox!.txt" --name-transform "all,replace=Fox:Turtle" --name-transform "all,replace=Quick:Slow"
+// Output: stories/The Slow Brown Turtle!.txt
+rclone convmv "stories/The Quick Brown Fox!.txt" --name-transform "all,base64encode"
+// Output: c3Rvcmllcw==/VGhlIFF1aWNrIEJyb3duIEZveCEudHh0
+rclone convmv "c3Rvcmllcw==/VGhlIFF1aWNrIEJyb3duIEZveCEudHh0" --name-transform "all,base64decode"
+// Output: stories/The Quick Brown Fox!.txt
+rclone convmv "stories/The Quick Brown 🦊 Fox Went to the Café!.txt" --name-transform "all,nfc"
+// Output: stories/The Quick Brown 🦊 Fox Went to the Café!.txt
+rclone convmv "stories/The Quick Brown 🦊 Fox Went to the Café!.txt" --name-transform "all,nfd"
+// Output: stories/The Quick Brown 🦊 Fox Went to the Café!.txt
+rclone convmv "stories/The Quick Brown 🦊 Fox!.txt" --name-transform "all,ascii"
+// Output: stories/The Quick Brown Fox!.txt
+rclone convmv "stories/The Quick Brown Fox!.txt" --name-transform "all,trimsuffix=.txt"
+// Output: stories/The Quick Brown Fox!
+rclone convmv "stories/The Quick Brown Fox!.txt" --name-transform "all,prefix=OLD_"
+// Output: OLD_stories/OLD_The Quick Brown Fox!.txt
+rclone convmv "stories/The Quick Brown 🦊 Fox Went to the Café!.txt" --name-transform "all,charmap=ISO-8859-7"
+// Output: stories/The Quick Brown _ Fox Went to the Caf_!.txt
+rclone convmv "stories/The Quick Brown Fox: A Memoir [draft].txt" --name-transform "all,encoder=Colon,SquareBracket"
+// Output: stories/The Quick Brown Fox: A Memoir [draft].txt
+rclone convmv "stories/The Quick Brown 🦊 Fox Went to the Café!.txt" --name-transform "all,truncate=21"
+// Output: stories/The Quick Brown 🦊 Fox
+rclone convmv "stories/The Quick Brown Fox!.txt" --name-transform "all,command=echo"
+// Output: stories/The Quick Brown Fox!.txt
+rclone convmv "stories/The Quick Brown Fox!" --name-transform "date=-{YYYYMMDD}"
+// Output: stories/The Quick Brown Fox!-20250924
+rclone convmv "stories/The Quick Brown Fox!" --name-transform "date=-{macfriendlytime}"
+// Output: stories/The Quick Brown Fox!-2025-09-24 0413PM
+rclone convmv "stories/The Quick Brown Fox!.txt" --name-transform "all,regex=[\\.\\w]/ab"
+// Output: ababababababab/ababab ababababab ababababab ababab!abababab
+The regex command generally accepts Perl-style regular expressions,
+the exact syntax is defined in the Go regular expression
+reference. The replacement string may contain capturing group
+variables, referencing capturing groups using the syntax
+$name or ${name}, where the name can refer to
+a named capturing group or it can simply be the index as a number. To
+insert a literal $, use $$.
Multiple transformations can be used in sequence, applied in the
order they are specified on the command line.
The --name-transform flag is also available in
sync, copy, and move.
-Files vs Directories
+Files vs Directories
By default --name-transform will only apply to file
names. The means only the leaf file name will be transformed. However
some of the transforms would be better applied to the whole path or just
@@ -4119,7 +4360,7 @@ the path
example --name-transform all,nfc.
Note that --name-transform may not add path separators
/ to the name. This will cause an error.
-Ordering and Conflicts
+Ordering and Conflicts
- Transformations will be applied in the order specified by the user.
@@ -4146,25 +4387,33 @@ unexpected results and should verify transformations using
--dry-run before execution.
-Race Conditions
-and Non-Deterministic Behavior
+Race Conditions
+and Non-Deterministic Behavior
Some transformations, such as replace=old:new, may
introduce conflicts where multiple source files map to the same
destination name. This can lead to race conditions when performing
-concurrent transfers. It is up to the user to anticipate these. * If two
-files from the source are transformed into the same name at the
-destination, the final state may be non-deterministic. * Running rclone
-check after a sync using such transformations may erroneously report
-missing or differing files due to overwritten results.
-To minimize risks, users should: * Carefully review transformations
-that may introduce conflicts. * Use --dry-run to inspect
-changes before executing a sync (but keep in mind that it won't show the
-effect of non-deterministic transformations). * Avoid transformations
-that cause multiple distinct source files to map to the same destination
-name. * Consider disabling concurrency with --transfers=1
-if necessary. * Certain transformations (e.g. prefix) will
-have a multiplying effect every time they are used. Avoid these when
-using bisync.
+concurrent transfers. It is up to the user to anticipate these.
+
+- If two files from the source are transformed into the same name at
+the destination, the final state may be non-deterministic.
+- Running rclone check after a sync using such transformations may
+erroneously report missing or differing files due to overwritten
+results.
+
+To minimize risks, users should:
+
+- Carefully review transformations that may introduce conflicts.
+- Use
--dry-run to inspect changes before executing a
+sync (but keep in mind that it won't show the effect of
+non-deterministic transformations).
+- Avoid transformations that cause multiple distinct source files to
+map to the same destination name.
+- Consider disabling concurrency with
--transfers=1 if
+necessary.
+- Certain transformations (e.g.
prefix) will have a
+multiplying effect every time they are used. Avoid these when using
+bisync.
+
rclone convmv dest:path --name-transform XXX [flags]
Options
--create-empty-src-dirs Create empty source dirs on destination after move
@@ -4175,7 +4424,7 @@ href="https://rclone.org/flags/">global flags page for global
options not listed here.
Copy Options
Flags for anything which can copy a file
- --check-first Do all the checks before starting transfers
+ --check-first Do all the checks before starting transfers
-c, --checksum Check for changes with size & checksum (if available, or fallback to size only)
--compare-dest stringArray Include additional server-side paths during comparison
--copy-dest stringArray Implies --compare-dest but also copies files from paths into destination
@@ -4211,12 +4460,12 @@ options not listed here.
-u, --update Skip files that are newer on the destination
Important Options
Important flags useful for most commands
- -n, --dry-run Do a trial run with no permanent changes
+ -n, --dry-run Do a trial run with no permanent changes
-i, --interactive Enable interactive mode
-v, --verbose count Print lots more stuff (repeat for more)
Filter Options
Flags for filtering directory listings
- --delete-excluded Delete files on dest excluded from sync
+ --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
--exclude-if-present stringArray Exclude directories if filename is present
@@ -4241,13 +4490,16 @@ options not listed here.
--min-size SizeSuffix Only transfer files bigger than this in KiB or suffix B|K|M|G|T|P (default off)
Listing Options
Flags for listing directories
- --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
+ --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
--fast-list Use recursive list if available; uses more memory but fewer transactions
See Also
+
+
- rclone - Show help
for rclone commands, flags and backends.
+
rclone copyto
Copy files from source to dest, skipping identical files.
Synopsis
@@ -4257,11 +4509,13 @@ directory named dest:path.
name. If the source is a directory then it acts exactly like the copy command.
So
-rclone copyto src dst
-where src and dst are rclone paths, either remote:path or
-/path/to/local or C:.
+rclone copyto src dst
+where src and dst are rclone paths, either remote:path
+or /path/to/local or
+C:\windows\path\if\on\windows.
This will:
-if src is file
+if src is file
copy it to dst, overwriting an existing file if it exists
if src is directory
copy it to dst, overwriting existing files if they exist
@@ -4270,11 +4524,11 @@ if src is directory
testing by size and modification time or MD5SUM. It doesn't delete files
from the destination.
If you are looking to copy just a byte range of a file, please
-see 'rclone cat --offset X --count Y'
+see rclone cat --offset X --count Y.
Note: Use the
-P/--progress flag to view real-time transfer
-statistics
-Logger Flags
+statistics.
+Logger Flags
The --differ, --missing-on-dst,
--missing-on-src, --match and
--error flags write paths, one per line, to the file name
@@ -4322,7 +4576,7 @@ scenarios are not currently supported:
Note also that each file is logged during execution, as opposed to
after, so it is most useful as a predictor of what SHOULD happen to each
-file (which may or may not match what actually DID.)
+file (which may or may not match what actually DID).
rclone copyto source:path dest:path [flags]
Options
--absolute Put a leading / in front of path names
@@ -4347,7 +4601,7 @@ href="https://rclone.org/flags/">global flags page for global
options not listed here.
Copy Options
Flags for anything which can copy a file
- --check-first Do all the checks before starting transfers
+ --check-first Do all the checks before starting transfers
-c, --checksum Check for changes with size & checksum (if available, or fallback to size only)
--compare-dest stringArray Include additional server-side paths during comparison
--copy-dest stringArray Implies --compare-dest but also copies files from paths into destination
@@ -4383,12 +4637,12 @@ options not listed here.
-u, --update Skip files that are newer on the destination
Important Options
Important flags useful for most commands
- -n, --dry-run Do a trial run with no permanent changes
+ -n, --dry-run Do a trial run with no permanent changes
-i, --interactive Enable interactive mode
-v, --verbose count Print lots more stuff (repeat for more)
Filter Options
Flags for filtering directory listings
- --delete-excluded Delete files on dest excluded from sync
+ --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
--exclude-if-present stringArray Exclude directories if filename is present
@@ -4413,13 +4667,16 @@ options not listed here.
--min-size SizeSuffix Only transfer files bigger than this in KiB or suffix B|K|M|G|T|P (default off)
Listing Options
Flags for listing directories
- --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
+ --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
--fast-list Use recursive list if available; uses more memory but fewer transactions
See Also
+
+
- rclone - Show help
for rclone commands, flags and backends.
+
rclone copyurl
Copy the contents of the URL supplied content to dest:path.
Synopsis
@@ -4463,14 +4720,17 @@ href="https://rclone.org/flags/">global flags page for global
options not listed here.
Important Options
Important flags useful for most commands
- -n, --dry-run Do a trial run with no permanent changes
+ -n, --dry-run Do a trial run with no permanent changes
-i, --interactive Enable interactive mode
-v, --verbose count Print lots more stuff (repeat for more)
See Also
+
+
- rclone - Show help
for rclone commands, flags and backends.
+
rclone cryptcheck
Cryptcheck checks the integrity of an encrypted remote.
Synopsis
@@ -4486,11 +4746,14 @@ and using that to encrypt each file on the remote:. It then checks the
checksum of the underlying file on the cryptedremote: against the
checksum of the file it has just encrypted.
Use it like this
-rclone cryptcheck /path/to/files encryptedremote:path
+rclone cryptcheck /path/to/files encryptedremote:path
You can use it like this also, but that will involve downloading all
-the files in remote:path.
-rclone cryptcheck remote:path encryptedremote:path
-After it has run it will log the status of the encryptedremote:.
+the files in remote:path.
+rclone cryptcheck remote:path encryptedremote:path
+After it has run it will log the status of the
+encryptedremote:.
If you supply the --one-way flag, it will only check
that files in the source match the files in the destination, not the
other way around. This means that extra files in the destination that
@@ -4536,10 +4799,10 @@ href="https://rclone.org/flags/">global flags page for global
options not listed here.
Check Options
Flags used for check commands
- --max-backlog int Maximum number of objects in sync or check backlog (default 10000)
+ --max-backlog int Maximum number of objects in sync or check backlog (default 10000)
Filter Options
Flags for filtering directory listings
- --delete-excluded Delete files on dest excluded from sync
+ --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
--exclude-if-present stringArray Exclude directories if filename is present
@@ -4564,13 +4827,16 @@ options not listed here.
--min-size SizeSuffix Only transfer files bigger than this in KiB or suffix B|K|M|G|T|P (default off)
Listing Options
Flags for listing directories
- --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
+ --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
--fast-list Use recursive list if available; uses more memory but fewer transactions
See Also
+
+
- rclone - Show help
for rclone commands, flags and backends.
+
rclone cryptdecode
Cryptdecode returns unencrypted file names.
Synopsis
@@ -4579,9 +4845,9 @@ file names. List limit is 10 items.
If you supply the --reverse flag, it will return
encrypted file names.
use it like this
-rclone cryptdecode encryptedremote: encryptedfilename1 encryptedfilename2
-
-rclone cryptdecode --reverse encryptedremote: filename1 filename2
+rclone cryptdecode encryptedremote: encryptedfilename1 encryptedfilename2
+rclone cryptdecode --reverse encryptedremote: filename1 filename2
Another way to accomplish this is by using the
rclone backend encode (or decode) command. See
the documentation on the crypt
@@ -4593,10 +4859,13 @@ overlay for more info.
See the global flags page for
global options not listed here.
See Also
+
+
- rclone - Show help
for rclone commands, flags and backends.
+
rclone deletefile
Remove a single file from remote.
Synopsis
@@ -4611,14 +4880,17 @@ href="https://rclone.org/flags/">global flags page for global
options not listed here.
Important Options
Important flags useful for most commands
- -n, --dry-run Do a trial run with no permanent changes
+ -n, --dry-run Do a trial run with no permanent changes
-i, --interactive Enable interactive mode
-v, --verbose count Print lots more stuff (repeat for more)
See Also
+
+
- rclone - Show help
for rclone commands, flags and backends.
+
rclone gendocs
Output markdown docs for rclone to the directory supplied.
Synopsis
@@ -4631,10 +4903,13 @@ rclone.org website.
See the global flags page for
global options not listed here.
See Also
+
+
- rclone - Show help
for rclone commands, flags and backends.
+
rclone gitannex
Speaks with git-annex over stdin/stdout.
Synopsis
@@ -4697,10 +4972,13 @@ class="sourceCode sh">global flags page for
global options not listed here.
See Also
+
+
- rclone - Show help
for rclone commands, flags and backends.
+
rclone hashsum
Produces a hashsum file for all the objects in the path.
Synopsis
@@ -4719,19 +4997,21 @@ by not passing a remote:path, or by passing a hyphen as remote:path when
there is data to read (if not, the hyphen will be treated literally, as
a relative path).
Run without a hash to see the list of all supported hashes, e.g.
-$ rclone hashsum
-Supported hashes are:
- * md5
- * sha1
- * whirlpool
- * crc32
- * sha256
- * sha512
- * blake3
- * xxh3
- * xxh128
+$ rclone hashsum
+Supported hashes are:
+ * md5
+ * sha1
+ * whirlpool
+ * crc32
+ * sha256
+ * sha512
+ * blake3
+ * xxh3
+ * xxh128
Then
-$ rclone hashsum MD5 remote:path
+rclone hashsum MD5 remote:path
Note that hash names are case insensitive and values are output in
lower case.
rclone hashsum [<hash> remote:path] [flags]
@@ -4746,7 +5026,7 @@ href="https://rclone.org/flags/">global flags page for global
options not listed here.
Filter Options
Flags for filtering directory listings
- --delete-excluded Delete files on dest excluded from sync
+ --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
--exclude-if-present stringArray Exclude directories if filename is present
@@ -4771,22 +5051,26 @@ options not listed here.
--min-size SizeSuffix Only transfer files bigger than this in KiB or suffix B|K|M|G|T|P (default off)
Listing Options
Flags for listing directories
- --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
+ --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
--fast-list Use recursive list if available; uses more memory but fewer transactions
See Also
+
+
- rclone - Show help
for rclone commands, flags and backends.
+
rclone link
Generate public link to file/folder.
Synopsis
Create, retrieve or remove a public link to the given file or
folder.
-rclone link remote:path/to/file
-rclone link remote:path/to/folder/
-rclone link --unlink remote:path/to/folder/
-rclone link --expire 1d remote:path/to/file
+rclone link remote:path/to/file
+rclone link remote:path/to/folder/
+rclone link --unlink remote:path/to/folder/
+rclone link --expire 1d remote:path/to/file
If you supply the --expire flag, it will set the expiration time
otherwise it will use the default (100 years). Note not
all backends support the --expire flag - if the backend doesn't support
@@ -4796,7 +5080,7 @@ folder. Note not all backends support "--unlink" flag -
those that don't will just ignore it.
If successful, the last line of the output will contain the link.
Exact capabilities depend on the remote, but the link will always by
-default be created with the least constraints – e.g. no expiry, no
+default be created with the least constraints - e.g. no expiry, no
password protection, accessible without account.
rclone link remote:path [flags]
Options
@@ -4806,10 +5090,13 @@ password protection, accessible without account.
See the global flags page for
global options not listed here.
See Also
+
+
- rclone - Show help
for rclone commands, flags and backends.
+
rclone listremotes
List all the remotes in the config file and defined in environment
variables.
@@ -4839,10 +5126,13 @@ syntax.
See the global flags page for
global options not listed here.
See Also
+
+
- rclone - Show help
for rclone commands, flags and backends.
+
rclone lsf
List directories and objects in remote:path formatted for
parsing.
@@ -4851,17 +5141,18 @@ parsing.
standard output in a form which is easy to parse by scripts. By default
this will just be the names of the objects and directories, one per
line. The directories will have a / suffix.
-Eg
-$ rclone lsf swift:bucket
-bevajer5jef
-canole
-diwogej7
-ferejej3gux/
-fubuwic
+E.g.
+$ rclone lsf swift:bucket
+bevajer5jef
+canole
+diwogej7
+ferejej3gux/
+fubuwic
Use the --format option to control what gets listed. By
default this is just the path, but you can use these parameters to
control the output:
-p - path
+p - path
s - size
t - modification time
h - hash
@@ -4874,13 +5165,14 @@ M - Metadata of object in JSON blob format, eg {"key":"value"
So if you wanted the path, size and modification time, you would use
--format "pst", or maybe --format "tsp" to put
the path last.
-Eg
-$ rclone lsf --format "tsp" swift:bucket
-2016-06-25 18:55:41;60295;bevajer5jef
-2016-06-25 18:55:43;90613;canole
-2016-06-25 18:55:43;94467;diwogej7
-2018-04-26 08:50:45;0;ferejej3gux/
-2016-06-25 18:55:40;37600;fubuwic
+E.g.
+$ rclone lsf --format "tsp" swift:bucket
+2016-06-25 18:55:41;60295;bevajer5jef
+2016-06-25 18:55:43;90613;canole
+2016-06-25 18:55:43;94467;diwogej7
+2018-04-26 08:50:45;0;ferejej3gux/
+2016-06-25 18:55:40;37600;fubuwic
If you specify "h" in the format you will get the MD5 hash by
default, use the --hash flag to change which hash you want.
Note that this can be returned as an empty string if it isn't available
@@ -4888,50 +5180,56 @@ on the object (and for directories), "ERROR" if there was an error
reading it from the object and "UNSUPPORTED" if that object does not
support that hash type.
For example, to emulate the md5sum command you can use
-rclone lsf -R --hash MD5 --format hp --separator " " --files-only .
-Eg
-$ rclone lsf -R --hash MD5 --format hp --separator " " --files-only swift:bucket
-7908e352297f0f530b84a756f188baa3 bevajer5jef
-cd65ac234e6fea5925974a51cdd865cc canole
-03b5341b4f234b9d984d03ad076bae91 diwogej7
-8fd37c3810dd660778137ac3a66cc06d fubuwic
-99713e14a4c4ff553acaf1930fad985b gixacuh7ku
+rclone lsf -R --hash MD5 --format hp --separator " " --files-only .
+E.g.
+$ rclone lsf -R --hash MD5 --format hp --separator " " --files-only swift:bucket
+7908e352297f0f530b84a756f188baa3 bevajer5jef
+cd65ac234e6fea5925974a51cdd865cc canole
+03b5341b4f234b9d984d03ad076bae91 diwogej7
+8fd37c3810dd660778137ac3a66cc06d fubuwic
+99713e14a4c4ff553acaf1930fad985b gixacuh7ku
(Though "rclone md5sum ." is an easier way of typing this.)
By default the separator is ";" this can be changed with the
--separator flag. Note that separators aren't escaped in
the path so putting it last is a good strategy.
-Eg
-$ rclone lsf --separator "," --format "tshp" swift:bucket
-2016-06-25 18:55:41,60295,7908e352297f0f530b84a756f188baa3,bevajer5jef
-2016-06-25 18:55:43,90613,cd65ac234e6fea5925974a51cdd865cc,canole
-2016-06-25 18:55:43,94467,03b5341b4f234b9d984d03ad076bae91,diwogej7
-2018-04-26 08:52:53,0,,ferejej3gux/
-2016-06-25 18:55:40,37600,8fd37c3810dd660778137ac3a66cc06d,fubuwic
+E.g.
+$ rclone lsf --separator "," --format "tshp" swift:bucket
+2016-06-25 18:55:41,60295,7908e352297f0f530b84a756f188baa3,bevajer5jef
+2016-06-25 18:55:43,90613,cd65ac234e6fea5925974a51cdd865cc,canole
+2016-06-25 18:55:43,94467,03b5341b4f234b9d984d03ad076bae91,diwogej7
+2018-04-26 08:52:53,0,,ferejej3gux/
+2016-06-25 18:55:40,37600,8fd37c3810dd660778137ac3a66cc06d,fubuwic
You can output in CSV standard format. This will escape things in "
-if they contain ,
-Eg
-$ rclone lsf --csv --files-only --format ps remote:path
-test.log,22355
-test.sh,449
-"this file contains a comma, in the file name.txt",6
+if they contain,
+E.g.
+$ rclone lsf --csv --files-only --format ps remote:path
+test.log,22355
+test.sh,449
+"this file contains a comma, in the file name.txt",6
Note that the --absolute parameter is useful for making
lists of files to pass to an rclone copy with the
--files-from-raw flag.
For example, to find all the files modified within one day and copy
those only (without traversing the whole directory structure):
-rclone lsf --absolute --files-only --max-age 1d /path/to/local > new_files
-rclone copy --files-from-raw new_files /path/to/local remote:path
+rclone lsf --absolute --files-only --max-age 1d /path/to/local > new_files
+rclone copy --files-from-raw new_files /path/to/local remote:path
The default time format is '2006-01-02 15:04:05'. Other formats can be
specified with the --time-format flag. Examples:
-rclone lsf remote:path --format pt --time-format 'Jan 2, 2006 at 3:04pm (MST)'
-rclone lsf remote:path --format pt --time-format '2006-01-02 15:04:05.000000000'
-rclone lsf remote:path --format pt --time-format '2006-01-02T15:04:05.999999999Z07:00'
-rclone lsf remote:path --format pt --time-format RFC3339
-rclone lsf remote:path --format pt --time-format DateOnly
-rclone lsf remote:path --format pt --time-format max
+rclone lsf remote:path --format pt --time-format 'Jan 2, 2006 at 3:04pm (MST)'
+rclone lsf remote:path --format pt --time-format '2006-01-02 15:04:05.000000000'
+rclone lsf remote:path --format pt --time-format '2006-01-02T15:04:05.999999999Z07:00'
+rclone lsf remote:path --format pt --time-format RFC3339
+rclone lsf remote:path --format pt --time-format DateOnly
+rclone lsf remote:path --format pt --time-format max
--time-format max will automatically truncate
-'2006-01-02 15:04:05.000000000' to the maximum precision
+2006-01-02 15:04:05.000000000 to the maximum precision
supported by the remote.
Any of the filtering options can be applied to this command.
There are several related list commands
@@ -4975,7 +5273,7 @@ href="https://rclone.org/flags/">global flags page for global
options not listed here.
Filter Options
Flags for filtering directory listings
- --delete-excluded Delete files on dest excluded from sync
+ --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
--exclude-if-present stringArray Exclude directories if filename is present
@@ -5000,37 +5298,41 @@ options not listed here.
--min-size SizeSuffix Only transfer files bigger than this in KiB or suffix B|K|M|G|T|P (default off)
Listing Options
Flags for listing directories
- --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
+ --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
--fast-list Use recursive list if available; uses more memory but fewer transactions
See Also
+
+
- rclone - Show help
for rclone commands, flags and backends.
+
rclone lsjson
List directories and objects in the path in JSON format.
Synopsis
List directories and objects in the path in JSON format.
The output is an array of Items, where each Item looks like this:
-{
- "Hashes" : {
- "SHA-1" : "f572d396fae9206628714fb2ce00f72e94f2258f",
- "MD5" : "b1946ac92492d2347c6235b4d2611184",
- "DropboxHash" : "ecb65bb98f9d905b70458986c39fcbad7715e5f2fcc3b1f07767d7c83e2438cc"
- },
- "ID": "y2djkhiujf83u33",
- "OrigID": "UYOJVTUW00Q1RzTDA",
- "IsBucket" : false,
- "IsDir" : false,
- "MimeType" : "application/octet-stream",
- "ModTime" : "2017-05-31T16:15:57.034468261+01:00",
- "Name" : "file.txt",
- "Encrypted" : "v0qpsdq8anpci8n929v3uu9338",
- "EncryptedPath" : "kja9098349023498/v0qpsdq8anpci8n929v3uu9338",
- "Path" : "full/path/goes/here/file.txt",
- "Size" : 6,
- "Tier" : "hot",
-}
+{
+ "Hashes" : {
+ "SHA-1" : "f572d396fae9206628714fb2ce00f72e94f2258f",
+ "MD5" : "b1946ac92492d2347c6235b4d2611184",
+ "DropboxHash" : "ecb65bb98f9d905b70458986c39fcbad7715e5f2fcc3b1f07767d7c83e2438cc"
+ },
+ "ID": "y2djkhiujf83u33",
+ "OrigID": "UYOJVTUW00Q1RzTDA",
+ "IsBucket" : false,
+ "IsDir" : false,
+ "MimeType" : "application/octet-stream",
+ "ModTime" : "2017-05-31T16:15:57.034468261+01:00",
+ "Name" : "file.txt",
+ "Encrypted" : "v0qpsdq8anpci8n929v3uu9338",
+ "EncryptedPath" : "kja9098349023498/v0qpsdq8anpci8n929v3uu9338",
+ "Path" : "full/path/goes/here/file.txt",
+ "Size" : 6,
+ "Tier" : "hot",
+}
The exact set of properties included depends on the backend:
- The property IsBucket will only be included for bucket-based
@@ -5133,7 +5435,7 @@ href="https://rclone.org/flags/">global flags page for global
options not listed here.
Filter Options
Flags for filtering directory listings
- --delete-excluded Delete files on dest excluded from sync
+ --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
--exclude-if-present stringArray Exclude directories if filename is present
@@ -5158,13 +5460,16 @@ options not listed here.
--min-size SizeSuffix Only transfer files bigger than this in KiB or suffix B|K|M|G|T|P (default off)
Listing Options
Flags for listing directories
- --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
+ --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
--fast-list Use recursive list if available; uses more memory but fewer transactions
See Also
+
+
- rclone - Show help
for rclone commands, flags and backends.
+
rclone mount
Mount the remote as file system on a mountpoint.
Synopsis
@@ -5183,7 +5488,8 @@ appropriate code (killing the child process if it fails).
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
+rclone mount remote:path/to/files /path/to/local/mount
On Windows you can start a mount in different ways. See below for details. If foreground
mount is used interactively from a console window, rclone will serve the
@@ -5197,21 +5503,23 @@ 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\parent\mount
-rclone mount remote:path/to/files \\cloud\remote
+rclone mount remote:path/to/files *
+rclone mount remote:path/to/files X:
+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:
-# Linux
-fusermount -u /path/to/local/mount
-#... or on some systems
-fusermount3 -u /path/to/local/mount
-# OS X or Linux when using nfsmount
-umount /path/to/local/mount
+# Linux
+fusermount -u /path/to/local/mount
+#... or on some systems
+fusermount3 -u /path/to/local/mount
+# OS X or Linux when using nfsmount
+umount /path/to/local/mount
The umount operation can fail, for example when the mountpoint is
busy. When that happens, it is the user's responsibility to stop the
mount manually.
@@ -5253,10 +5561,11 @@ 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\parent\mount
-rclone mount remote:path/to/files X:
+rclone mount remote:path/to/files *
+rclone mount remote:path/to/files X:
+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.
@@ -5265,7 +5574,8 @@ path.
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.
-rclone mount remote:path/to/files X: --network-mode
+rclone mount remote:path/to/files X: --network-mode
A volume name specified with --volname will be used to
create the network share path. A complete UNC path, such as
\\cloud\remote, optionally with path
@@ -5282,8 +5592,9 @@ for the mapped drive, shown in Windows Explorer etc, while the complete
--volname, this will implicitly set the
--network-mode option, so the following two examples have
same result:
-rclone mount remote:path/to/files X: --network-mode
-rclone mount remote:path/to/files X: --volname \\server\share
+rclone mount remote:path/to/files X: --network-mode
+rclone mount remote:path/to/files X: --volname \\server\share
You may also specify the network share UNC path as the mountpoint
itself. Then rclone will automatically assign a drive letter, same as
with * and use that as mountpoint, and instead use the UNC
@@ -5291,8 +5602,9 @@ path specified as the volume name, as if it were specified with the
--volname option. This will also implicitly set the
--network-mode option. This means the following two
examples have same result:
-rclone mount remote:path/to/files \\cloud\remote
-rclone mount remote:path/to/files * --volname \\cloud\remote
+rclone mount remote:path/to/files \\cloud\remote
+rclone mount remote:path/to/files * --volname \\cloud\remote
There is yet another way to enable network mode, and to set the share
path, and that is to pass the "native" libfuse/WinFsp option directly:
--fuse-flag --VolumePrefix=\server\share. Note that the
@@ -5415,11 +5727,11 @@ does not suffer from the same limitations.
Mounting on macOS can be done either via built-in NFS
server, macFUSE (also known
-as osxfuse) or FUSE-T. macFUSE is
-a traditional FUSE driver utilizing a macOS kernel extension (kext).
+as osxfuse) or FUSE-T.macFUSE is a
+traditional FUSE driver utilizing a macOS kernel extension (kext).
FUSE-T is an alternative FUSE system which "mounts" via an NFSv4 local
server.
-Unicode Normalization
+Unicode Normalization
It is highly recommended to keep the default of
--no-unicode-normalization=false for all mount
and serve commands on macOS. For details, see macports package manager, the
following addition steps are required.
-sudo mkdir /usr/local/lib
-cd /usr/local/lib
-sudo ln -s /opt/local/lib/libfuse.2.dylib
+sudo mkdir /usr/local/lib
+cd /usr/local/lib
+sudo ln -s /opt/local/lib/libfuse.2.dylib
FUSE-T Limitations,
Caveats, and Notes
There are some limitations, caveats, and notes about how it works.
@@ -5558,27 +5871,31 @@ run it as a mount helper you should symlink rclone binary to
ln -s /usr/bin/rclone /sbin/mount.rclone. rclone will
detect it and translate command-line arguments appropriately.
Now you can run classic mounts like this:
-mount sftp1:subdir /mnt/data -t rclone -o vfs_cache_mode=writes,sftp_key_file=/path/to/pem
+mount sftp1:subdir /mnt/data -t rclone -o vfs_cache_mode=writes,sftp_key_file=/path/to/pem
or create systemd mount units:
-# /etc/systemd/system/mnt-data.mount
-[Unit]
-Description=Mount for /mnt/data
-[Mount]
-Type=rclone
-What=sftp1:subdir
-Where=/mnt/data
-Options=rw,_netdev,allow_other,args2env,vfs-cache-mode=writes,config=/etc/rclone.conf,cache-dir=/var/rclone
+# /etc/systemd/system/mnt-data.mount
+[Unit]
+Description=Mount for /mnt/data
+[Mount]
+Type=rclone
+What=sftp1:subdir
+Where=/mnt/data
+Options=rw,_netdev,allow_other,args2env,vfs-cache-mode=writes,config=/etc/rclone.conf,cache-dir=/var/rclone
optionally accompanied by systemd automount unit
-# /etc/systemd/system/mnt-data.automount
-[Unit]
-Description=AutoMount for /mnt/data
-[Automount]
-Where=/mnt/data
-TimeoutIdleSec=600
-[Install]
-WantedBy=multi-user.target
+# /etc/systemd/system/mnt-data.automount
+[Unit]
+Description=AutoMount for /mnt/data
+[Automount]
+Where=/mnt/data
+TimeoutIdleSec=600
+[Install]
+WantedBy=multi-user.target
or add in /etc/fstab a line like
-sftp1:subdir /mnt/data rclone rw,noauto,nofail,_netdev,x-systemd.automount,args2env,vfs_cache_mode=writes,config=/etc/rclone.conf,cache_dir=/var/cache/rclone 0 0
+sftp1:subdir /mnt/data rclone rw,noauto,nofail,_netdev,x-systemd.automount,args2env,vfs_cache_mode=writes,config=/etc/rclone.conf,cache_dir=/var/cache/rclone 0 0
or use classic Automountd. Remember to provide explicit
config=...,cache-dir=... as a workaround for mount units
being run without HOME.
@@ -5624,8 +5941,8 @@ about files and directories (but not the data) in memory.
long a directory should be considered up to date and not refreshed from
the backend. Changes made through the VFS will appear immediately or
invalidate the cache.
---dir-cache-time duration Time to cache directory entries for (default 5m0s)
---poll-interval duration Time to wait between polling for changes. Must be smaller than dir-cache-time. Only on supported remotes. Set to 0 to disable (default 1m0s)
+ --dir-cache-time duration Time to cache directory entries for (default 5m0s)
+ --poll-interval duration Time to wait between polling for changes. Must be smaller than dir-cache-time. Only on supported remotes. Set to 0 to disable (default 1m0s)
However, changes made directly on the cloud storage by the web
interface or a different copy of rclone will only be picked up once the
directory cache expires if the backend configured does not support
@@ -5634,12 +5951,15 @@ picked up within the polling interval.
You can send a SIGHUP signal to rclone for it to flush
all directory caches, regardless of how old they are. Assuming only one
rclone instance is running, you can reset the cache like this:
-kill -SIGHUP $(pidof rclone)
+kill -SIGHUP $(pidof rclone)
If you configure rclone with a remote control then
you can use rclone rc to flush the whole directory cache:
-rclone rc vfs/forget
+rclone rc vfs/forget
Or individual files or directories:
-rclone rc vfs/forget file=path/to/file dir=path/to/dir
+rclone rc vfs/forget file=path/to/file dir=path/to/dir
VFS File Buffering
The --buffer-size flag determines the amount of memory,
that will be used to buffer data in advance.
@@ -5660,13 +5980,13 @@ system. It can be disabled at the cost of some compatibility.
write simultaneously to a file. See below for more details.
Note that the VFS cache is separate from the cache backend and you
may find that you need one or the other or both.
---cache-dir string Directory rclone will use for caching.
---vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
---vfs-cache-max-age duration Max time since last access of objects in the cache (default 1h0m0s)
---vfs-cache-max-size SizeSuffix Max total size of objects in the cache (default off)
---vfs-cache-min-free-space SizeSuffix Target minimum free space on the disk containing the cache (default off)
---vfs-cache-poll-interval duration Interval to poll the cache for stale objects (default 1m0s)
---vfs-write-back duration Time to writeback files after last use when using cache (default 5s)
+ --cache-dir string Directory rclone will use for caching.
+ --vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
+ --vfs-cache-max-age duration Max time since last access of objects in the cache (default 1h0m0s)
+ --vfs-cache-max-size SizeSuffix Max total size of objects in the cache (default off)
+ --vfs-cache-min-free-space SizeSuffix Target minimum free space on the disk containing the cache (default off)
+ --vfs-cache-poll-interval duration Interval to poll the cache for stale objects (default 1m0s)
+ --vfs-write-back duration Time to writeback files after last use when using cache (default 5s)
If run with -vv rclone will print the location of the
file cache. The files are stored in the user cache file area which is OS
dependent but can be controlled with --cache-dir or setting
@@ -5790,9 +6110,9 @@ specified. This can reduce the used download quota for some remotes by
requesting only chunks from the remote that are actually read, at the
cost of an increased number of requests.
These flags control the chunking:
---vfs-read-chunk-size SizeSuffix Read the source objects in chunks (default 128M)
---vfs-read-chunk-size-limit SizeSuffix Max chunk doubling size (default off)
---vfs-read-chunk-streams int The number of parallel streams to read at once
+ --vfs-read-chunk-size SizeSuffix Read the source objects in chunks (default 128M)
+ --vfs-read-chunk-size-limit SizeSuffix Max chunk doubling size (default off)
+ --vfs-read-chunk-streams int The number of parallel streams to read at once
The chunking behaves differently depending on the
--vfs-read-chunk-streams parameter.
--vfs-read-chunk-streams
@@ -5841,27 +6161,27 @@ href="#vfs-chunked-reading">chunked reading feature.
--no-modtime flag (or use --use-server-modtime
for a slightly different effect) as each read of the modification time
takes a transaction.
---no-checksum Don't compare checksums on up/download.
---no-modtime Don't read/write the modification time (can speed things up).
---no-seek Don't allow seeking in files.
---read-only Only allow read-only access.
+ --no-checksum Don't compare checksums on up/download.
+ --no-modtime Don't read/write the modification time (can speed things up).
+ --no-seek Don't allow seeking in files.
+ --read-only Only allow read-only access.
Sometimes rclone is delivered reads or writes out of order. Rather
than seeking rclone will wait a short time for the in sequence read or
write to come in. These flags only come into effect when not using an on
disk cache file.
---vfs-read-wait duration Time to wait for in-sequence read before seeking (default 20ms)
---vfs-write-wait duration Time to wait for in-sequence write before giving error (default 1s)
+ --vfs-read-wait duration Time to wait for in-sequence read before seeking (default 20ms)
+ --vfs-write-wait duration Time to wait for in-sequence write before giving error (default 1s)
When using VFS write caching (--vfs-cache-mode with
value writes or full), the global flag --transfers can be
set to adjust the number of parallel uploads of modified files from the
cache (the related global flag --checkers has no effect on
the VFS).
---transfers int Number of file transfers to run in parallel (default 4)
+ --transfers int Number of file transfers to run in parallel (default 4)
Symlinks
By default the VFS does not support symlinks. However this may be
enabled with either of the following flags:
---links Translate symlinks to/from regular files with a '.rclonelink' extension.
---vfs-links Translate symlinks to/from regular files with a '.rclonelink' extension for the VFS
+ --links Translate symlinks to/from regular files with a '.rclonelink' extension.
+ --vfs-links Translate symlinks to/from regular files with a '.rclonelink' extension for the VFS
As most cloud storage systems do not support symlinks directly,
rclone stores the symlink as a normal file with a special extension. So
a file which appears as a symlink link-to-file.txt would be
@@ -5882,7 +6202,7 @@ commands yet.
A limitation of the current implementation is that it expects the
caller to resolve sub-symlinks. For example given this directory
tree
-.
+.
├── dir
│ └── file.txt
└── linked-dir -> dir
@@ -5952,7 +6272,7 @@ an error, similar to how this is handled in
This flag allows you to manually set the statistics about the filing
system. It can be useful when those statistics cannot be read correctly
automatically.
---vfs-disk-space-total-size Manually set the total disk space size (example: 256G, default: -1)
+ --vfs-disk-space-total-size Manually set the total disk space size (example: 256G, default: -1)
Alternate report of used
bytes
Some backends, most notably S3, do not report the amount of bytes
@@ -5962,10 +6282,10 @@ used. If you need this information to be available when running
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.
+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.
VFS Metadata
If you use the --vfs-metadata-extension flag you can get
the VFS to expose files which contain the
--metadata flag.
For example, using rclone mount with
--metadata --vfs-metadata-extension .metadata we get
-$ ls -l /mnt/
-total 1048577
--rw-rw-r-- 1 user user 1073741824 Mar 3 16:03 1G
-
-$ cat /mnt/1G.metadata
-{
- "atime": "2025-03-04T17:34:22.317069787Z",
- "btime": "2025-03-03T16:03:37.708253808Z",
- "gid": "1000",
- "mode": "100664",
- "mtime": "2025-03-03T16:03:39.640238323Z",
- "uid": "1000"
-}
-
-$ ls -l /mnt/
-total 1048578
--rw-rw-r-- 1 user user 1073741824 Mar 3 16:03 1G
--rw-rw-r-- 1 user user 185 Mar 3 16:03 1G.metadata
+$ ls -l /mnt/
+total 1048577
+-rw-rw-r-- 1 user user 1073741824 Mar 3 16:03 1G
+
+$ cat /mnt/1G.metadata
+{
+ "atime": "2025-03-04T17:34:22.317069787Z",
+ "btime": "2025-03-03T16:03:37.708253808Z",
+ "gid": "1000",
+ "mode": "100664",
+ "mtime": "2025-03-03T16:03:39.640238323Z",
+ "uid": "1000"
+}
+
+$ ls -l /mnt/
+total 1048578
+-rw-rw-r-- 1 user user 1073741824 Mar 3 16:03 1G
+-rw-rw-r-- 1 user user 185 Mar 3 16:03 1G.metadata
If the file has no metadata it will be returned as {}
and if there is an error reading the metadata the error will be returned
as {"error":"error string"}.
@@ -6060,7 +6381,7 @@ href="https://rclone.org/flags/">global flags page for global
options not listed here.
Filter Options
Flags for filtering directory listings
- --delete-excluded Delete files on dest excluded from sync
+ --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
--exclude-if-present stringArray Exclude directories if filename is present
@@ -6084,10 +6405,13 @@ options not listed here.
--min-age Duration Only transfer files older than this in s or suffix ms|s|m|h|d|w|M|y (default off)
--min-size SizeSuffix Only transfer files bigger than this in KiB or suffix B|K|M|G|T|P (default off)
See Also
+
+
- rclone - Show help
for rclone commands, flags and backends.
+
rclone moveto
Move file or directory from source to dest.
Synopsis
@@ -6098,11 +6422,12 @@ their existing name. If the source is a directory then it acts exactly
like the move
command.
So
-rclone moveto src dst
+rclone moveto src dst
where src and dst are rclone paths, either remote:path or
/path/to/local or C:.
This will:
-if src is file
+if src is file
move it to dst, overwriting an existing file if it exists
if src is directory
move it to dst, overwriting existing files if they exist
@@ -6116,7 +6441,7 @@ first with the --dry-run or the
Note: Use the
-P/--progress flag to view real-time transfer
statistics.
-Logger Flags
+Logger Flags
The --differ, --missing-on-dst,
--missing-on-src, --match and
--error flags write paths, one per line, to the file name
@@ -6164,7 +6489,7 @@ scenarios are not currently supported:
Note also that each file is logged during execution, as opposed to
after, so it is most useful as a predictor of what SHOULD happen to each
-file (which may or may not match what actually DID.)
+file (which may or may not match what actually DID).
rclone moveto source:path dest:path [flags]
Options
--absolute Put a leading / in front of path names
@@ -6189,7 +6514,7 @@ href="https://rclone.org/flags/">global flags page for global
options not listed here.
Copy Options
Flags for anything which can copy a file
- --check-first Do all the checks before starting transfers
+ --check-first Do all the checks before starting transfers
-c, --checksum Check for changes with size & checksum (if available, or fallback to size only)
--compare-dest stringArray Include additional server-side paths during comparison
--copy-dest stringArray Implies --compare-dest but also copies files from paths into destination
@@ -6225,12 +6550,12 @@ options not listed here.
-u, --update Skip files that are newer on the destination
Important Options
Important flags useful for most commands
- -n, --dry-run Do a trial run with no permanent changes
+ -n, --dry-run Do a trial run with no permanent changes
-i, --interactive Enable interactive mode
-v, --verbose count Print lots more stuff (repeat for more)
Filter Options
Flags for filtering directory listings
- --delete-excluded Delete files on dest excluded from sync
+ --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
--exclude-if-present stringArray Exclude directories if filename is present
@@ -6255,13 +6580,16 @@ options not listed here.
--min-size SizeSuffix Only transfer files bigger than this in KiB or suffix B|K|M|G|T|P (default off)
Listing Options
Flags for listing directories
- --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
+ --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
--fast-list Use recursive list if available; uses more memory but fewer transactions
See Also
+
+
- rclone - Show help
for rclone commands, flags and backends.
+
rclone ncdu
Explore a remote with a text based user interface.
Synopsis
@@ -6274,7 +6602,7 @@ scanning phase and you will see it building up the directory structure
as it goes along.
You can interact with the user interface using key presses, press '?'
to toggle the help on and off. The supported keys are:
- ↑,↓ or k,j to Move
+ ↑,↓ or k,j to Move
→,l to enter
←,h to return
g toggle graph
@@ -6297,7 +6625,7 @@ to toggle the help on and off. The supported keys are:
Listed files/directories may be prefixed by a one-character flag,
some of them combined with a description in brackets at end of line.
These flags have the following meaning:
-e means this is an empty directory, i.e. contains no files (but
+e means this is an empty directory, i.e. contains no files (but
may contain empty subdirectories)
~ means this is a directory where some of the files (possibly in
subdirectories) have unknown size, and therefore the directory
@@ -6326,7 +6654,7 @@ href="https://rclone.org/flags/">global flags page for global
options not listed here.
Filter Options
Flags for filtering directory listings
- --delete-excluded Delete files on dest excluded from sync
+ --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
--exclude-if-present stringArray Exclude directories if filename is present
@@ -6351,13 +6679,16 @@ options not listed here.
--min-size SizeSuffix Only transfer files bigger than this in KiB or suffix B|K|M|G|T|P (default off)
Listing Options
Flags for listing directories
- --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
+ --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
--fast-list Use recursive list if available; uses more memory but fewer transactions
See Also
+
+
- rclone - Show help
for rclone commands, flags and backends.
+
rclone nfsmount
Mount the remote as file system on a mountpoint.
Synopsis
@@ -6376,7 +6707,8 @@ appropriate code (killing the child process if it fails).
On Linux/macOS/FreeBSD start the mount like this, where
/path/to/local/mount is an empty
existing directory:
-rclone nfsmount remote:path/to/files /path/to/local/mount
+rclone nfsmount remote:path/to/files /path/to/local/mount
On Windows you can start a mount in different ways. See below for details. If foreground
mount is used interactively from a console window, rclone will serve the
@@ -6390,21 +6722,23 @@ 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 nfsmount remote:path/to/files *
-rclone nfsmount remote:path/to/files X:
-rclone nfsmount remote:path/to/files C:\path\parent\mount
-rclone nfsmount remote:path/to/files \\cloud\remote
+rclone nfsmount remote:path/to/files *
+rclone nfsmount remote:path/to/files X:
+rclone nfsmount remote:path/to/files C:\path\parent\mount
+rclone nfsmount 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:
-# Linux
-fusermount -u /path/to/local/mount
-#... or on some systems
-fusermount3 -u /path/to/local/mount
-# OS X or Linux when using nfsmount
-umount /path/to/local/mount
+# Linux
+fusermount -u /path/to/local/mount
+#... or on some systems
+fusermount3 -u /path/to/local/mount
+# OS X or Linux when using nfsmount
+umount /path/to/local/mount
The umount operation can fail, for example when the mountpoint is
busy. When that happens, it is the user's responsibility to stop the
mount manually.
@@ -6446,10 +6780,11 @@ 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 nfsmount remote:path/to/files *
-rclone nfsmount remote:path/to/files X:
-rclone nfsmount remote:path/to/files C:\path\parent\mount
-rclone nfsmount remote:path/to/files X:
+rclone nfsmount remote:path/to/files *
+rclone nfsmount remote:path/to/files X:
+rclone nfsmount remote:path/to/files C:\path\parent\mount
+rclone nfsmount 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.
@@ -6458,7 +6793,8 @@ path.
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.
-rclone nfsmount remote:path/to/files X: --network-mode
+rclone nfsmount remote:path/to/files X: --network-mode
A volume name specified with --volname will be used to
create the network share path. A complete UNC path, such as
\\cloud\remote, optionally with path
@@ -6475,8 +6811,9 @@ for the mapped drive, shown in Windows Explorer etc, while the complete
--volname, this will implicitly set the
--network-mode option, so the following two examples have
same result:
-rclone nfsmount remote:path/to/files X: --network-mode
-rclone nfsmount remote:path/to/files X: --volname \\server\share
+rclone nfsmount remote:path/to/files X: --network-mode
+rclone nfsmount remote:path/to/files X: --volname \\server\share
You may also specify the network share UNC path as the mountpoint
itself. Then rclone will automatically assign a drive letter, same as
with * and use that as mountpoint, and instead use the UNC
@@ -6484,8 +6821,9 @@ path specified as the volume name, as if it were specified with the
--volname option. This will also implicitly set the
--network-mode option. This means the following two
examples have same result:
-rclone nfsmount remote:path/to/files \\cloud\remote
-rclone nfsmount remote:path/to/files * --volname \\cloud\remote
+rclone nfsmount remote:path/to/files \\cloud\remote
+rclone nfsmount remote:path/to/files * --volname \\cloud\remote
There is yet another way to enable network mode, and to set the share
path, and that is to pass the "native" libfuse/WinFsp option directly:
--fuse-flag --VolumePrefix=\server\share. Note that the
@@ -6608,11 +6946,11 @@ does not suffer from the same limitations.
Mounting on macOS can be done either via built-in NFS
server, macFUSE (also known
-as osxfuse) or FUSE-T. macFUSE is
-a traditional FUSE driver utilizing a macOS kernel extension (kext).
+as osxfuse) or FUSE-T.macFUSE is a
+traditional FUSE driver utilizing a macOS kernel extension (kext).
FUSE-T is an alternative FUSE system which "mounts" via an NFSv4 local
server.
-Unicode Normalization
+Unicode Normalization
It is highly recommended to keep the default of
--no-unicode-normalization=false for all mount
and serve commands on macOS. For details, see macports package manager, the
following addition steps are required.
-sudo mkdir /usr/local/lib
-cd /usr/local/lib
-sudo ln -s /opt/local/lib/libfuse.2.dylib
+sudo mkdir /usr/local/lib
+cd /usr/local/lib
+sudo ln -s /opt/local/lib/libfuse.2.dylib
FUSE-T Limitations,
Caveats, and Notes
There are some limitations, caveats, and notes about how it works.
@@ -6751,27 +7090,31 @@ run it as a mount helper you should symlink rclone binary to
ln -s /usr/bin/rclone /sbin/mount.rclone. rclone will
detect it and translate command-line arguments appropriately.
Now you can run classic mounts like this:
-mount sftp1:subdir /mnt/data -t rclone -o vfs_cache_mode=writes,sftp_key_file=/path/to/pem
+mount sftp1:subdir /mnt/data -t rclone -o vfs_cache_mode=writes,sftp_key_file=/path/to/pem
or create systemd mount units:
-# /etc/systemd/system/mnt-data.mount
-[Unit]
-Description=Mount for /mnt/data
-[Mount]
-Type=rclone
-What=sftp1:subdir
-Where=/mnt/data
-Options=rw,_netdev,allow_other,args2env,vfs-cache-mode=writes,config=/etc/rclone.conf,cache-dir=/var/rclone
+# /etc/systemd/system/mnt-data.mount
+[Unit]
+Description=Mount for /mnt/data
+[Mount]
+Type=rclone
+What=sftp1:subdir
+Where=/mnt/data
+Options=rw,_netdev,allow_other,args2env,vfs-cache-mode=writes,config=/etc/rclone.conf,cache-dir=/var/rclone
optionally accompanied by systemd automount unit
-# /etc/systemd/system/mnt-data.automount
-[Unit]
-Description=AutoMount for /mnt/data
-[Automount]
-Where=/mnt/data
-TimeoutIdleSec=600
-[Install]
-WantedBy=multi-user.target
+# /etc/systemd/system/mnt-data.automount
+[Unit]
+Description=AutoMount for /mnt/data
+[Automount]
+Where=/mnt/data
+TimeoutIdleSec=600
+[Install]
+WantedBy=multi-user.target
or add in /etc/fstab a line like
-sftp1:subdir /mnt/data rclone rw,noauto,nofail,_netdev,x-systemd.automount,args2env,vfs_cache_mode=writes,config=/etc/rclone.conf,cache_dir=/var/cache/rclone 0 0
+sftp1:subdir /mnt/data rclone rw,noauto,nofail,_netdev,x-systemd.automount,args2env,vfs_cache_mode=writes,config=/etc/rclone.conf,cache_dir=/var/cache/rclone 0 0
or use classic Automountd. Remember to provide explicit
config=...,cache-dir=... as a workaround for mount units
being run without HOME.
@@ -6817,8 +7160,8 @@ about files and directories (but not the data) in memory.
long a directory should be considered up to date and not refreshed from
the backend. Changes made through the VFS will appear immediately or
invalidate the cache.
---dir-cache-time duration Time to cache directory entries for (default 5m0s)
---poll-interval duration Time to wait between polling for changes. Must be smaller than dir-cache-time. Only on supported remotes. Set to 0 to disable (default 1m0s)
+ --dir-cache-time duration Time to cache directory entries for (default 5m0s)
+ --poll-interval duration Time to wait between polling for changes. Must be smaller than dir-cache-time. Only on supported remotes. Set to 0 to disable (default 1m0s)
However, changes made directly on the cloud storage by the web
interface or a different copy of rclone will only be picked up once the
directory cache expires if the backend configured does not support
@@ -6827,12 +7170,15 @@ picked up within the polling interval.
You can send a SIGHUP signal to rclone for it to flush
all directory caches, regardless of how old they are. Assuming only one
rclone instance is running, you can reset the cache like this:
-kill -SIGHUP $(pidof rclone)
+kill -SIGHUP $(pidof rclone)
If you configure rclone with a remote control then
you can use rclone rc to flush the whole directory cache:
-rclone rc vfs/forget
+rclone rc vfs/forget
Or individual files or directories:
-rclone rc vfs/forget file=path/to/file dir=path/to/dir
+rclone rc vfs/forget file=path/to/file dir=path/to/dir
VFS File Buffering
The --buffer-size flag determines the amount of memory,
that will be used to buffer data in advance.
@@ -6853,13 +7199,13 @@ system. It can be disabled at the cost of some compatibility.
write simultaneously to a file. See below for more details.
Note that the VFS cache is separate from the cache backend and you
may find that you need one or the other or both.
---cache-dir string Directory rclone will use for caching.
---vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
---vfs-cache-max-age duration Max time since last access of objects in the cache (default 1h0m0s)
---vfs-cache-max-size SizeSuffix Max total size of objects in the cache (default off)
---vfs-cache-min-free-space SizeSuffix Target minimum free space on the disk containing the cache (default off)
---vfs-cache-poll-interval duration Interval to poll the cache for stale objects (default 1m0s)
---vfs-write-back duration Time to writeback files after last use when using cache (default 5s)
+ --cache-dir string Directory rclone will use for caching.
+ --vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
+ --vfs-cache-max-age duration Max time since last access of objects in the cache (default 1h0m0s)
+ --vfs-cache-max-size SizeSuffix Max total size of objects in the cache (default off)
+ --vfs-cache-min-free-space SizeSuffix Target minimum free space on the disk containing the cache (default off)
+ --vfs-cache-poll-interval duration Interval to poll the cache for stale objects (default 1m0s)
+ --vfs-write-back duration Time to writeback files after last use when using cache (default 5s)
If run with -vv rclone will print the location of the
file cache. The files are stored in the user cache file area which is OS
dependent but can be controlled with --cache-dir or setting
@@ -6983,9 +7329,9 @@ specified. This can reduce the used download quota for some remotes by
requesting only chunks from the remote that are actually read, at the
cost of an increased number of requests.
These flags control the chunking:
---vfs-read-chunk-size SizeSuffix Read the source objects in chunks (default 128M)
---vfs-read-chunk-size-limit SizeSuffix Max chunk doubling size (default off)
---vfs-read-chunk-streams int The number of parallel streams to read at once
+ --vfs-read-chunk-size SizeSuffix Read the source objects in chunks (default 128M)
+ --vfs-read-chunk-size-limit SizeSuffix Max chunk doubling size (default off)
+ --vfs-read-chunk-streams int The number of parallel streams to read at once
The chunking behaves differently depending on the
--vfs-read-chunk-streams parameter.
chunked reading feature.
--no-modtime flag (or use --use-server-modtime
for a slightly different effect) as each read of the modification time
takes a transaction.
---no-checksum Don't compare checksums on up/download.
---no-modtime Don't read/write the modification time (can speed things up).
---no-seek Don't allow seeking in files.
---read-only Only allow read-only access.
+ --no-checksum Don't compare checksums on up/download.
+ --no-modtime Don't read/write the modification time (can speed things up).
+ --no-seek Don't allow seeking in files.
+ --read-only Only allow read-only access.
Sometimes rclone is delivered reads or writes out of order. Rather
than seeking rclone will wait a short time for the in sequence read or
write to come in. These flags only come into effect when not using an on
disk cache file.
---vfs-read-wait duration Time to wait for in-sequence read before seeking (default 20ms)
---vfs-write-wait duration Time to wait for in-sequence write before giving error (default 1s)
+ --vfs-read-wait duration Time to wait for in-sequence read before seeking (default 20ms)
+ --vfs-write-wait duration Time to wait for in-sequence write before giving error (default 1s)
When using VFS write caching (--vfs-cache-mode with
value writes or full), the global flag --transfers can be
set to adjust the number of parallel uploads of modified files from the
cache (the related global flag --checkers has no effect on
the VFS).
---transfers int Number of file transfers to run in parallel (default 4)
+ --transfers int Number of file transfers to run in parallel (default 4)
Symlinks
By default the VFS does not support symlinks. However this may be
enabled with either of the following flags:
---links Translate symlinks to/from regular files with a '.rclonelink' extension.
---vfs-links Translate symlinks to/from regular files with a '.rclonelink' extension for the VFS
+ --links Translate symlinks to/from regular files with a '.rclonelink' extension.
+ --vfs-links Translate symlinks to/from regular files with a '.rclonelink' extension for the VFS
As most cloud storage systems do not support symlinks directly,
rclone stores the symlink as a normal file with a special extension. So
a file which appears as a symlink link-to-file.txt would be
@@ -7076,7 +7422,7 @@ commands yet.
A limitation of the current implementation is that it expects the
caller to resolve sub-symlinks. For example given this directory
tree
-.
+.
├── dir
│ └── file.txt
└── linked-dir -> dir
@@ -7146,7 +7492,7 @@ an error, similar to how this is handled in
This flag allows you to manually set the statistics about the filing
system. It can be useful when those statistics cannot be read correctly
automatically.
---vfs-disk-space-total-size Manually set the total disk space size (example: 256G, default: -1)
+ --vfs-disk-space-total-size Manually set the total disk space size (example: 256G, default: -1)
Alternate report of used
bytes
Some backends, most notably S3, do not report the amount of bytes
@@ -7156,10 +7502,10 @@ used. If you need this information to be available when running
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.
+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.
VFS Metadata
If you use the --vfs-metadata-extension flag you can get
the VFS to expose files which contain the
--metadata flag.
For example, using rclone mount with
--metadata --vfs-metadata-extension .metadata we get
-$ ls -l /mnt/
-total 1048577
--rw-rw-r-- 1 user user 1073741824 Mar 3 16:03 1G
-
-$ cat /mnt/1G.metadata
-{
- "atime": "2025-03-04T17:34:22.317069787Z",
- "btime": "2025-03-03T16:03:37.708253808Z",
- "gid": "1000",
- "mode": "100664",
- "mtime": "2025-03-03T16:03:39.640238323Z",
- "uid": "1000"
-}
-
-$ ls -l /mnt/
-total 1048578
--rw-rw-r-- 1 user user 1073741824 Mar 3 16:03 1G
--rw-rw-r-- 1 user user 185 Mar 3 16:03 1G.metadata
+$ ls -l /mnt/
+total 1048577
+-rw-rw-r-- 1 user user 1073741824 Mar 3 16:03 1G
+
+$ cat /mnt/1G.metadata
+{
+ "atime": "2025-03-04T17:34:22.317069787Z",
+ "btime": "2025-03-03T16:03:37.708253808Z",
+ "gid": "1000",
+ "mode": "100664",
+ "mtime": "2025-03-03T16:03:39.640238323Z",
+ "uid": "1000"
+}
+
+$ ls -l /mnt/
+total 1048578
+-rw-rw-r-- 1 user user 1073741824 Mar 3 16:03 1G
+-rw-rw-r-- 1 user user 185 Mar 3 16:03 1G.metadata
If the file has no metadata it will be returned as {}
and if there is an error reading the metadata the error will be returned
as {"error":"error string"}.
@@ -7259,7 +7606,7 @@ href="https://rclone.org/flags/">global flags page for global
options not listed here.
Filter Options
Flags for filtering directory listings
- --delete-excluded Delete files on dest excluded from sync
+ --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
--exclude-if-present stringArray Exclude directories if filename is present
@@ -7283,10 +7630,13 @@ options not listed here.
--min-age Duration Only transfer files older than this in s or suffix ms|s|m|h|d|w|M|y (default off)
--min-size SizeSuffix Only transfer files bigger than this in KiB or suffix B|K|M|G|T|P (default off)
See Also
+
+
- rclone - Show help
for rclone commands, flags and backends.
+
rclone obscure
Obscure password for use in the rclone config file.
Synopsis
@@ -7302,7 +7652,8 @@ character hex token.
This command can also accept a password through STDIN instead of an
argument by passing a hyphen as an argument. This will use the first
line of STDIN as the password not including the trailing newline.
-echo "secretpassword" | rclone obscure -
+echo "secretpassword" | rclone obscure -
If there is no data on STDIN to read, rclone obscure will default to
obfuscating the hyphen itself.
If you want to encrypt the config file then please use config file
@@ -7315,18 +7666,22 @@ more info.
See the global flags page for
global options not listed here.
See Also
+
+
- rclone - Show help
for rclone commands, flags and backends.
+
rclone rc
Run a command against a running rclone.
Synopsis
This runs a command against a running rclone. Use the
--url flag to specify an non default URL to connect on.
-This can be either a ":port" which is taken to mean
-"http://localhost:port" or a "host:port" which is taken to mean
-"http://host:port"
+This can be either a ":port" which is taken to mean http://localhost:port or a
+"host:port" which is taken to mean http://host:port.
A username and password can be passed in with --user and
--pass.
Note that --rc-addr, --rc-user,
@@ -7334,10 +7689,11 @@ This can be either a ":port" which is taken to mean
--user, --pass.
The --unix-socket flag can be used to connect over a
unix socket like this
-# start server on /tmp/my.socket
-rclone rcd --rc-addr unix:///tmp/my.socket
-# Connect to it
-rclone rc --unix-socket /tmp/my.socket core/stats
+# start server on /tmp/my.socket
+rclone rcd --rc-addr unix:///tmp/my.socket
+# Connect to it
+rclone rc --unix-socket /tmp/my.socket core/stats
Arguments should be passed in as parameter=value.
The result will be returned as a JSON object by default.
The --json parameter can be used to pass in a JSON blob
@@ -7348,20 +7704,23 @@ key "opt" with key, value options in the form -o key=value
or -o key. It can be repeated as many times as required.
This is useful for rc commands which take the "opt" parameter which by
convention is a dictionary of strings.
--o key=value -o key2
+-o key=value -o key2
Will place this in the "opt" value
-{"key":"value", "key2","")
+{"key":"value", "key2","")
The -a/--arg option can be used to set
strings in the "arg" value. It can be repeated as many times as
required. This is useful for rc commands which take the "arg" parameter
which by convention is a list of strings.
--a value -a value2
+-a value -a value2
Will place this in the "arg" value
-["value", "value2"]
+["value", "value2"]
Use --loopback to connect to the rclone instance running
rclone rc. This is very useful for testing commands without
having to run an rclone rc server, e.g.:
-rclone rc --loopback operations/about fs=/
+rclone rc --loopback operations/about fs=/
Use rclone rc to see a list of all possible
commands.
rclone rc commands parameter [flags]
@@ -7379,17 +7738,21 @@ commands.
See the global flags page for
global options not listed here.
See Also
+
+
- rclone - Show help
for rclone commands, flags and backends.
+
rclone rcat
Copies standard input to file on remote.
Synopsis
Reads from standard input (stdin) and copies it to a single remote
file.
-echo "hello world" | rclone rcat remote:path/to/file
-ffmpeg - | rclone rcat remote:path/to/file
+echo "hello world" | rclone rcat remote:path/to/file
+ffmpeg - | rclone rcat remote:path/to/file
If the remote file already exists, it will be overwritten.
rcat will try to upload small files in a single request, which is
usually more efficient than the streaming/chunked upload endpoints,
@@ -7420,14 +7783,17 @@ href="https://rclone.org/flags/">global flags page for global
options not listed here.
Important Options
Important flags useful for most commands
- -n, --dry-run Do a trial run with no permanent changes
+ -n, --dry-run Do a trial run with no permanent changes
-i, --interactive Enable interactive mode
-v, --verbose count Print lots more stuff (repeat for more)
See Also
+
+
- rclone - Show help
for rclone commands, flags and backends.
+
rclone rcd
Run rclone listening to remote control commands only.
Synopsis
@@ -7488,13 +7854,16 @@ acceptable. Valid values are "tls1.0", "tls1.1", "tls1.2" and "tls1.3"
listen to all FDs passed by the service manager, if any (and ignore any
arguments passed by --rc-addr).
This allows rclone to be a socket-activated service. It can be
-configured with .socket and .service unit files as described in
-https://www.freedesktop.org/software/systemd/man/latest/systemd.socket.html
+configured with .socket and .service unit files as described in https://www.freedesktop.org/software/systemd/man/latest/systemd.socket.html.
Socket activation can be tested ad-hoc with the
systemd-socket-activatecommand
- systemd-socket-activate -l 8000 -- rclone serve
+systemd-socket-activate -l 8000 -- rclone serve
This will socket-activate rclone on the first connection to port 8000
-over TCP. ### Template
+over TCP.
+Template
--rc-template allows a user to specify a custom markup
template for HTTP and WebDAV serve functions. The server exports the
following markup to be used within the template to server pages:
@@ -7641,9 +8010,10 @@ considered as the username.
htpasswd file. This is in standard apache format and supports MD5, SHA1
and BCrypt for basic authentication. Bcrypt is recommended.
To create an htpasswd file:
-touch htpasswd
-htpasswd -B htpasswd user
-htpasswd -B htpasswd anotherUser
+touch htpasswd
+htpasswd -B htpasswd user
+htpasswd -B htpasswd anotherUser
The password file can be updated while rclone is running.
Use --rc-realm to set the authentication realm.
Use --rc-salt to change the password hashing salt from
@@ -7656,7 +8026,7 @@ href="https://rclone.org/flags/">global flags page for global
options not listed here.
RC Options
Flags to control the Remote Control API
- --rc Enable the remote control server
+ --rc Enable the remote control server
--rc-addr stringArray IPaddress:Port or :Port to bind server to (default localhost:5572)
--rc-allow-origin string Origin which cross-domain request (CORS) can be executed from
--rc-baseurl string Prefix for URLs - leave blank for root
@@ -7687,10 +8057,13 @@ options not listed here.
--rc-web-gui-no-open-browser Don't open the browser automatically
--rc-web-gui-update Check and update to latest version of web gui
See Also
+
+
- rclone - Show help
for rclone commands, flags and backends.
+
rclone rmdirs
Remove empty directories under the path.
Synopsis
@@ -7720,14 +8093,17 @@ href="https://rclone.org/flags/">global flags page for global
options not listed here.
Important Options
Important flags useful for most commands
- -n, --dry-run Do a trial run with no permanent changes
+ -n, --dry-run Do a trial run with no permanent changes
-i, --interactive Enable interactive mode
-v, --verbose count Print lots more stuff (repeat for more)
See Also
+
+
- rclone - Show help
for rclone commands, flags and backends.
+
rclone selfupdate
Update the rclone binary.
Synopsis
@@ -7779,8 +8155,8 @@ 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/
+manually following the install
+documentation.
rclone selfupdate [flags]
Options
--beta Install beta release
@@ -7793,16 +8169,20 @@ https://rclone.org/install/
See the global flags page for
global options not listed here.
See Also
+
+
- rclone - Show help
for rclone commands, flags and backends.
+
rclone serve
Serve a remote over a protocol.
Synopsis
Serve a remote over a given protocol. Requires the use of a
subcommand to specify the protocol, e.g.
-rclone serve http remote:
+rclone serve http remote:
Each subcommand has its own options which you can see in their
help.
rclone serve <protocol> [opts] <remote> [flags]
@@ -7811,6 +8191,8 @@ help.
See the global flags page for
global options not listed here.
See Also
+
+
- rclone - Show help
for rclone commands, flags and backends.
@@ -7833,6 +8215,7 @@ serve sftp - Serve the remote over SFTP.
- rclone
serve webdav - Serve remote:path over WebDAV.
+
rclone serve dlna
Serve remote:path over DLNA
Synopsis
@@ -7872,8 +8255,8 @@ about files and directories (but not the data) in memory.
long a directory should be considered up to date and not refreshed from
the backend. Changes made through the VFS will appear immediately or
invalidate the cache.
---dir-cache-time duration Time to cache directory entries for (default 5m0s)
---poll-interval duration Time to wait between polling for changes. Must be smaller than dir-cache-time. Only on supported remotes. Set to 0 to disable (default 1m0s)
+ --dir-cache-time duration Time to cache directory entries for (default 5m0s)
+ --poll-interval duration Time to wait between polling for changes. Must be smaller than dir-cache-time. Only on supported remotes. Set to 0 to disable (default 1m0s)
However, changes made directly on the cloud storage by the web
interface or a different copy of rclone will only be picked up once the
directory cache expires if the backend configured does not support
@@ -7882,12 +8265,15 @@ picked up within the polling interval.
You can send a SIGHUP signal to rclone for it to flush
all directory caches, regardless of how old they are. Assuming only one
rclone instance is running, you can reset the cache like this:
-kill -SIGHUP $(pidof rclone)
+kill -SIGHUP $(pidof rclone)
If you configure rclone with a remote control then
you can use rclone rc to flush the whole directory cache:
-rclone rc vfs/forget
+rclone rc vfs/forget
Or individual files or directories:
-rclone rc vfs/forget file=path/to/file dir=path/to/dir
+rclone rc vfs/forget file=path/to/file dir=path/to/dir
VFS File Buffering
The --buffer-size flag determines the amount of memory,
that will be used to buffer data in advance.
@@ -7908,13 +8294,13 @@ system. It can be disabled at the cost of some compatibility.
write simultaneously to a file. See below for more details.
Note that the VFS cache is separate from the cache backend and you
may find that you need one or the other or both.
---cache-dir string Directory rclone will use for caching.
---vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
---vfs-cache-max-age duration Max time since last access of objects in the cache (default 1h0m0s)
---vfs-cache-max-size SizeSuffix Max total size of objects in the cache (default off)
---vfs-cache-min-free-space SizeSuffix Target minimum free space on the disk containing the cache (default off)
---vfs-cache-poll-interval duration Interval to poll the cache for stale objects (default 1m0s)
---vfs-write-back duration Time to writeback files after last use when using cache (default 5s)
+ --cache-dir string Directory rclone will use for caching.
+ --vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
+ --vfs-cache-max-age duration Max time since last access of objects in the cache (default 1h0m0s)
+ --vfs-cache-max-size SizeSuffix Max total size of objects in the cache (default off)
+ --vfs-cache-min-free-space SizeSuffix Target minimum free space on the disk containing the cache (default off)
+ --vfs-cache-poll-interval duration Interval to poll the cache for stale objects (default 1m0s)
+ --vfs-write-back duration Time to writeback files after last use when using cache (default 5s)
If run with -vv rclone will print the location of the
file cache. The files are stored in the user cache file area which is OS
dependent but can be controlled with --cache-dir or setting
@@ -8038,9 +8424,9 @@ specified. This can reduce the used download quota for some remotes by
requesting only chunks from the remote that are actually read, at the
cost of an increased number of requests.
These flags control the chunking:
---vfs-read-chunk-size SizeSuffix Read the source objects in chunks (default 128M)
---vfs-read-chunk-size-limit SizeSuffix Max chunk doubling size (default off)
---vfs-read-chunk-streams int The number of parallel streams to read at once
+ --vfs-read-chunk-size SizeSuffix Read the source objects in chunks (default 128M)
+ --vfs-read-chunk-size-limit SizeSuffix Max chunk doubling size (default off)
+ --vfs-read-chunk-streams int The number of parallel streams to read at once
The chunking behaves differently depending on the
--vfs-read-chunk-streams parameter.
chunked reading feature.
--no-modtime flag (or use --use-server-modtime
for a slightly different effect) as each read of the modification time
takes a transaction.
---no-checksum Don't compare checksums on up/download.
---no-modtime Don't read/write the modification time (can speed things up).
---no-seek Don't allow seeking in files.
---read-only Only allow read-only access.
+ --no-checksum Don't compare checksums on up/download.
+ --no-modtime Don't read/write the modification time (can speed things up).
+ --no-seek Don't allow seeking in files.
+ --read-only Only allow read-only access.
Sometimes rclone is delivered reads or writes out of order. Rather
than seeking rclone will wait a short time for the in sequence read or
write to come in. These flags only come into effect when not using an on
disk cache file.
---vfs-read-wait duration Time to wait for in-sequence read before seeking (default 20ms)
---vfs-write-wait duration Time to wait for in-sequence write before giving error (default 1s)
+ --vfs-read-wait duration Time to wait for in-sequence read before seeking (default 20ms)
+ --vfs-write-wait duration Time to wait for in-sequence write before giving error (default 1s)
When using VFS write caching (--vfs-cache-mode with
value writes or full), the global flag --transfers can be
set to adjust the number of parallel uploads of modified files from the
cache (the related global flag --checkers has no effect on
the VFS).
---transfers int Number of file transfers to run in parallel (default 4)
+ --transfers int Number of file transfers to run in parallel (default 4)
Symlinks
By default the VFS does not support symlinks. However this may be
enabled with either of the following flags:
---links Translate symlinks to/from regular files with a '.rclonelink' extension.
---vfs-links Translate symlinks to/from regular files with a '.rclonelink' extension for the VFS
+ --links Translate symlinks to/from regular files with a '.rclonelink' extension.
+ --vfs-links Translate symlinks to/from regular files with a '.rclonelink' extension for the VFS
As most cloud storage systems do not support symlinks directly,
rclone stores the symlink as a normal file with a special extension. So
a file which appears as a symlink link-to-file.txt would be
@@ -8131,7 +8517,7 @@ commands yet.
A limitation of the current implementation is that it expects the
caller to resolve sub-symlinks. For example given this directory
tree
-.
+.
├── dir
│ └── file.txt
└── linked-dir -> dir
@@ -8201,7 +8587,7 @@ an error, similar to how this is handled in
This flag allows you to manually set the statistics about the filing
system. It can be useful when those statistics cannot be read correctly
automatically.
---vfs-disk-space-total-size Manually set the total disk space size (example: 256G, default: -1)
+ --vfs-disk-space-total-size Manually set the total disk space size (example: 256G, default: -1)
Alternate report of used
bytes
Some backends, most notably S3, do not report the amount of bytes
@@ -8211,10 +8597,10 @@ used. If you need this information to be available when running
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.
+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.
VFS Metadata
If you use the --vfs-metadata-extension flag you can get
the VFS to expose files which contain the
--metadata flag.
For example, using rclone mount with
--metadata --vfs-metadata-extension .metadata we get
-$ ls -l /mnt/
-total 1048577
--rw-rw-r-- 1 user user 1073741824 Mar 3 16:03 1G
-
-$ cat /mnt/1G.metadata
-{
- "atime": "2025-03-04T17:34:22.317069787Z",
- "btime": "2025-03-03T16:03:37.708253808Z",
- "gid": "1000",
- "mode": "100664",
- "mtime": "2025-03-03T16:03:39.640238323Z",
- "uid": "1000"
-}
-
-$ ls -l /mnt/
-total 1048578
--rw-rw-r-- 1 user user 1073741824 Mar 3 16:03 1G
--rw-rw-r-- 1 user user 185 Mar 3 16:03 1G.metadata
+$ ls -l /mnt/
+total 1048577
+-rw-rw-r-- 1 user user 1073741824 Mar 3 16:03 1G
+
+$ cat /mnt/1G.metadata
+{
+ "atime": "2025-03-04T17:34:22.317069787Z",
+ "btime": "2025-03-03T16:03:37.708253808Z",
+ "gid": "1000",
+ "mode": "100664",
+ "mtime": "2025-03-03T16:03:39.640238323Z",
+ "uid": "1000"
+}
+
+$ ls -l /mnt/
+total 1048578
+-rw-rw-r-- 1 user user 1073741824 Mar 3 16:03 1G
+-rw-rw-r-- 1 user user 185 Mar 3 16:03 1G.metadata
If the file has no metadata it will be returned as {}
and if there is an error reading the metadata the error will be returned
as {"error":"error string"}.
@@ -8293,7 +8680,7 @@ href="https://rclone.org/flags/">global flags page for global
options not listed here.
Filter Options
Flags for filtering directory listings
- --delete-excluded Delete files on dest excluded from sync
+ --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
--exclude-if-present stringArray Exclude directories if filename is present
@@ -8317,10 +8704,13 @@ options not listed here.
--min-age Duration Only transfer files older than this in s or suffix ms|s|m|h|d|w|M|y (default off)
--min-size SizeSuffix Only transfer files bigger than this in KiB or suffix B|K|M|G|T|P (default off)
See Also
+
+
- rclone serve
- Serve a remote over a protocol.
+
rclone serve docker
Serve any remote on docker's volume plugin API.
Synopsis
@@ -8334,7 +8724,8 @@ commands from docker daemon and runs the corresponding code when
necessary. Docker plugins can run as a managed plugin under control of
the docker daemon or as an independent native service. For testing, you
can just run it directly from the command line, for example:
-sudo rclone serve docker --base-dir /tmp/rclone-volumes --socket-addr localhost:8787 -vv
+sudo rclone serve docker --base-dir /tmp/rclone-volumes --socket-addr localhost:8787 -vv
Running rclone serve docker will create the said socket,
listening for commands from Docker to create the necessary Volumes.
Normally you need not give the --socket-addr flag. The API
@@ -8378,8 +8769,8 @@ about files and directories (but not the data) in memory.
long a directory should be considered up to date and not refreshed from
the backend. Changes made through the VFS will appear immediately or
invalidate the cache.
---dir-cache-time duration Time to cache directory entries for (default 5m0s)
---poll-interval duration Time to wait between polling for changes. Must be smaller than dir-cache-time. Only on supported remotes. Set to 0 to disable (default 1m0s)
+ --dir-cache-time duration Time to cache directory entries for (default 5m0s)
+ --poll-interval duration Time to wait between polling for changes. Must be smaller than dir-cache-time. Only on supported remotes. Set to 0 to disable (default 1m0s)
However, changes made directly on the cloud storage by the web
interface or a different copy of rclone will only be picked up once the
directory cache expires if the backend configured does not support
@@ -8388,12 +8779,15 @@ picked up within the polling interval.
You can send a SIGHUP signal to rclone for it to flush
all directory caches, regardless of how old they are. Assuming only one
rclone instance is running, you can reset the cache like this:
-kill -SIGHUP $(pidof rclone)
+kill -SIGHUP $(pidof rclone)
If you configure rclone with a remote control then
you can use rclone rc to flush the whole directory cache:
-rclone rc vfs/forget
+rclone rc vfs/forget
Or individual files or directories:
-rclone rc vfs/forget file=path/to/file dir=path/to/dir
+rclone rc vfs/forget file=path/to/file dir=path/to/dir
VFS File Buffering
The --buffer-size flag determines the amount of memory,
that will be used to buffer data in advance.
@@ -8414,13 +8808,13 @@ system. It can be disabled at the cost of some compatibility.
write simultaneously to a file. See below for more details.
Note that the VFS cache is separate from the cache backend and you
may find that you need one or the other or both.
---cache-dir string Directory rclone will use for caching.
---vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
---vfs-cache-max-age duration Max time since last access of objects in the cache (default 1h0m0s)
---vfs-cache-max-size SizeSuffix Max total size of objects in the cache (default off)
---vfs-cache-min-free-space SizeSuffix Target minimum free space on the disk containing the cache (default off)
---vfs-cache-poll-interval duration Interval to poll the cache for stale objects (default 1m0s)
---vfs-write-back duration Time to writeback files after last use when using cache (default 5s)
+ --cache-dir string Directory rclone will use for caching.
+ --vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
+ --vfs-cache-max-age duration Max time since last access of objects in the cache (default 1h0m0s)
+ --vfs-cache-max-size SizeSuffix Max total size of objects in the cache (default off)
+ --vfs-cache-min-free-space SizeSuffix Target minimum free space on the disk containing the cache (default off)
+ --vfs-cache-poll-interval duration Interval to poll the cache for stale objects (default 1m0s)
+ --vfs-write-back duration Time to writeback files after last use when using cache (default 5s)
If run with -vv rclone will print the location of the
file cache. The files are stored in the user cache file area which is OS
dependent but can be controlled with --cache-dir or setting
@@ -8544,9 +8938,9 @@ specified. This can reduce the used download quota for some remotes by
requesting only chunks from the remote that are actually read, at the
cost of an increased number of requests.
These flags control the chunking:
---vfs-read-chunk-size SizeSuffix Read the source objects in chunks (default 128M)
---vfs-read-chunk-size-limit SizeSuffix Max chunk doubling size (default off)
---vfs-read-chunk-streams int The number of parallel streams to read at once
+ --vfs-read-chunk-size SizeSuffix Read the source objects in chunks (default 128M)
+ --vfs-read-chunk-size-limit SizeSuffix Max chunk doubling size (default off)
+ --vfs-read-chunk-streams int The number of parallel streams to read at once
The chunking behaves differently depending on the
--vfs-read-chunk-streams parameter.
chunked reading feature.
--no-modtime flag (or use --use-server-modtime
for a slightly different effect) as each read of the modification time
takes a transaction.
---no-checksum Don't compare checksums on up/download.
---no-modtime Don't read/write the modification time (can speed things up).
---no-seek Don't allow seeking in files.
---read-only Only allow read-only access.
+ --no-checksum Don't compare checksums on up/download.
+ --no-modtime Don't read/write the modification time (can speed things up).
+ --no-seek Don't allow seeking in files.
+ --read-only Only allow read-only access.
Sometimes rclone is delivered reads or writes out of order. Rather
than seeking rclone will wait a short time for the in sequence read or
write to come in. These flags only come into effect when not using an on
disk cache file.
---vfs-read-wait duration Time to wait for in-sequence read before seeking (default 20ms)
---vfs-write-wait duration Time to wait for in-sequence write before giving error (default 1s)
+ --vfs-read-wait duration Time to wait for in-sequence read before seeking (default 20ms)
+ --vfs-write-wait duration Time to wait for in-sequence write before giving error (default 1s)
When using VFS write caching (--vfs-cache-mode with
value writes or full), the global flag --transfers can be
set to adjust the number of parallel uploads of modified files from the
cache (the related global flag --checkers has no effect on
the VFS).
---transfers int Number of file transfers to run in parallel (default 4)
+ --transfers int Number of file transfers to run in parallel (default 4)
Symlinks
By default the VFS does not support symlinks. However this may be
enabled with either of the following flags:
---links Translate symlinks to/from regular files with a '.rclonelink' extension.
---vfs-links Translate symlinks to/from regular files with a '.rclonelink' extension for the VFS
+ --links Translate symlinks to/from regular files with a '.rclonelink' extension.
+ --vfs-links Translate symlinks to/from regular files with a '.rclonelink' extension for the VFS
As most cloud storage systems do not support symlinks directly,
rclone stores the symlink as a normal file with a special extension. So
a file which appears as a symlink link-to-file.txt would be
@@ -8637,7 +9031,7 @@ commands yet.
A limitation of the current implementation is that it expects the
caller to resolve sub-symlinks. For example given this directory
tree
-.
+.
├── dir
│ └── file.txt
└── linked-dir -> dir
@@ -8707,7 +9101,7 @@ an error, similar to how this is handled in
This flag allows you to manually set the statistics about the filing
system. It can be useful when those statistics cannot be read correctly
automatically.
---vfs-disk-space-total-size Manually set the total disk space size (example: 256G, default: -1)
+ --vfs-disk-space-total-size Manually set the total disk space size (example: 256G, default: -1)
Alternate report of used
bytes
Some backends, most notably S3, do not report the amount of bytes
@@ -8717,10 +9111,10 @@ used. If you need this information to be available when running
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.
+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.
VFS Metadata
If you use the --vfs-metadata-extension flag you can get
the VFS to expose files which contain the
--metadata flag.
For example, using rclone mount with
--metadata --vfs-metadata-extension .metadata we get
-$ ls -l /mnt/
-total 1048577
--rw-rw-r-- 1 user user 1073741824 Mar 3 16:03 1G
-
-$ cat /mnt/1G.metadata
-{
- "atime": "2025-03-04T17:34:22.317069787Z",
- "btime": "2025-03-03T16:03:37.708253808Z",
- "gid": "1000",
- "mode": "100664",
- "mtime": "2025-03-03T16:03:39.640238323Z",
- "uid": "1000"
-}
-
-$ ls -l /mnt/
-total 1048578
--rw-rw-r-- 1 user user 1073741824 Mar 3 16:03 1G
--rw-rw-r-- 1 user user 185 Mar 3 16:03 1G.metadata
+$ ls -l /mnt/
+total 1048577
+-rw-rw-r-- 1 user user 1073741824 Mar 3 16:03 1G
+
+$ cat /mnt/1G.metadata
+{
+ "atime": "2025-03-04T17:34:22.317069787Z",
+ "btime": "2025-03-03T16:03:37.708253808Z",
+ "gid": "1000",
+ "mode": "100664",
+ "mtime": "2025-03-03T16:03:39.640238323Z",
+ "uid": "1000"
+}
+
+$ ls -l /mnt/
+total 1048578
+-rw-rw-r-- 1 user user 1073741824 Mar 3 16:03 1G
+-rw-rw-r-- 1 user user 185 Mar 3 16:03 1G.metadata
If the file has no metadata it will be returned as {}
and if there is an error reading the metadata the error will be returned
as {"error":"error string"}.
@@ -8820,7 +9215,7 @@ href="https://rclone.org/flags/">global flags page for global
options not listed here.
Filter Options
Flags for filtering directory listings
- --delete-excluded Delete files on dest excluded from sync
+ --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
--exclude-if-present stringArray Exclude directories if filename is present
@@ -8844,10 +9239,13 @@ options not listed here.
--min-age Duration Only transfer files older than this in s or suffix ms|s|m|h|d|w|M|y (default off)
--min-size SizeSuffix Only transfer files bigger than this in KiB or suffix B|K|M|G|T|P (default off)
See Also
+
+
- rclone serve
- Serve a remote over a protocol.
+
rclone serve ftp
Serve remote:path over FTP.
Synopsis
@@ -8881,8 +9279,8 @@ about files and directories (but not the data) in memory.
long a directory should be considered up to date and not refreshed from
the backend. Changes made through the VFS will appear immediately or
invalidate the cache.
---dir-cache-time duration Time to cache directory entries for (default 5m0s)
---poll-interval duration Time to wait between polling for changes. Must be smaller than dir-cache-time. Only on supported remotes. Set to 0 to disable (default 1m0s)
+ --dir-cache-time duration Time to cache directory entries for (default 5m0s)
+ --poll-interval duration Time to wait between polling for changes. Must be smaller than dir-cache-time. Only on supported remotes. Set to 0 to disable (default 1m0s)
However, changes made directly on the cloud storage by the web
interface or a different copy of rclone will only be picked up once the
directory cache expires if the backend configured does not support
@@ -8891,12 +9289,15 @@ picked up within the polling interval.
You can send a SIGHUP signal to rclone for it to flush
all directory caches, regardless of how old they are. Assuming only one
rclone instance is running, you can reset the cache like this:
-kill -SIGHUP $(pidof rclone)
+kill -SIGHUP $(pidof rclone)
If you configure rclone with a remote control then
you can use rclone rc to flush the whole directory cache:
-rclone rc vfs/forget
+rclone rc vfs/forget
Or individual files or directories:
-rclone rc vfs/forget file=path/to/file dir=path/to/dir
+rclone rc vfs/forget file=path/to/file dir=path/to/dir
VFS File Buffering
The --buffer-size flag determines the amount of memory,
that will be used to buffer data in advance.
@@ -8917,13 +9318,13 @@ system. It can be disabled at the cost of some compatibility.
write simultaneously to a file. See below for more details.
Note that the VFS cache is separate from the cache backend and you
may find that you need one or the other or both.
---cache-dir string Directory rclone will use for caching.
---vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
---vfs-cache-max-age duration Max time since last access of objects in the cache (default 1h0m0s)
---vfs-cache-max-size SizeSuffix Max total size of objects in the cache (default off)
---vfs-cache-min-free-space SizeSuffix Target minimum free space on the disk containing the cache (default off)
---vfs-cache-poll-interval duration Interval to poll the cache for stale objects (default 1m0s)
---vfs-write-back duration Time to writeback files after last use when using cache (default 5s)
+ --cache-dir string Directory rclone will use for caching.
+ --vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
+ --vfs-cache-max-age duration Max time since last access of objects in the cache (default 1h0m0s)
+ --vfs-cache-max-size SizeSuffix Max total size of objects in the cache (default off)
+ --vfs-cache-min-free-space SizeSuffix Target minimum free space on the disk containing the cache (default off)
+ --vfs-cache-poll-interval duration Interval to poll the cache for stale objects (default 1m0s)
+ --vfs-write-back duration Time to writeback files after last use when using cache (default 5s)
If run with -vv rclone will print the location of the
file cache. The files are stored in the user cache file area which is OS
dependent but can be controlled with --cache-dir or setting
@@ -9047,9 +9448,9 @@ specified. This can reduce the used download quota for some remotes by
requesting only chunks from the remote that are actually read, at the
cost of an increased number of requests.
These flags control the chunking:
---vfs-read-chunk-size SizeSuffix Read the source objects in chunks (default 128M)
---vfs-read-chunk-size-limit SizeSuffix Max chunk doubling size (default off)
---vfs-read-chunk-streams int The number of parallel streams to read at once
+ --vfs-read-chunk-size SizeSuffix Read the source objects in chunks (default 128M)
+ --vfs-read-chunk-size-limit SizeSuffix Max chunk doubling size (default off)
+ --vfs-read-chunk-streams int The number of parallel streams to read at once
The chunking behaves differently depending on the
--vfs-read-chunk-streams parameter.
chunked reading feature.
--no-modtime flag (or use --use-server-modtime
for a slightly different effect) as each read of the modification time
takes a transaction.
---no-checksum Don't compare checksums on up/download.
---no-modtime Don't read/write the modification time (can speed things up).
---no-seek Don't allow seeking in files.
---read-only Only allow read-only access.
+ --no-checksum Don't compare checksums on up/download.
+ --no-modtime Don't read/write the modification time (can speed things up).
+ --no-seek Don't allow seeking in files.
+ --read-only Only allow read-only access.
Sometimes rclone is delivered reads or writes out of order. Rather
than seeking rclone will wait a short time for the in sequence read or
write to come in. These flags only come into effect when not using an on
disk cache file.
---vfs-read-wait duration Time to wait for in-sequence read before seeking (default 20ms)
---vfs-write-wait duration Time to wait for in-sequence write before giving error (default 1s)
+ --vfs-read-wait duration Time to wait for in-sequence read before seeking (default 20ms)
+ --vfs-write-wait duration Time to wait for in-sequence write before giving error (default 1s)
When using VFS write caching (--vfs-cache-mode with
value writes or full), the global flag --transfers can be
set to adjust the number of parallel uploads of modified files from the
cache (the related global flag --checkers has no effect on
the VFS).
---transfers int Number of file transfers to run in parallel (default 4)
+ --transfers int Number of file transfers to run in parallel (default 4)
Symlinks
By default the VFS does not support symlinks. However this may be
enabled with either of the following flags:
---links Translate symlinks to/from regular files with a '.rclonelink' extension.
---vfs-links Translate symlinks to/from regular files with a '.rclonelink' extension for the VFS
+ --links Translate symlinks to/from regular files with a '.rclonelink' extension.
+ --vfs-links Translate symlinks to/from regular files with a '.rclonelink' extension for the VFS
As most cloud storage systems do not support symlinks directly,
rclone stores the symlink as a normal file with a special extension. So
a file which appears as a symlink link-to-file.txt would be
@@ -9140,7 +9541,7 @@ commands yet.
A limitation of the current implementation is that it expects the
caller to resolve sub-symlinks. For example given this directory
tree
-.
+.
├── dir
│ └── file.txt
└── linked-dir -> dir
@@ -9210,7 +9611,7 @@ an error, similar to how this is handled in
This flag allows you to manually set the statistics about the filing
system. It can be useful when those statistics cannot be read correctly
automatically.
---vfs-disk-space-total-size Manually set the total disk space size (example: 256G, default: -1)
+ --vfs-disk-space-total-size Manually set the total disk space size (example: 256G, default: -1)
Alternate report of used
bytes
Some backends, most notably S3, do not report the amount of bytes
@@ -9220,10 +9621,10 @@ used. If you need this information to be available when running
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.
+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.
VFS Metadata
If you use the --vfs-metadata-extension flag you can get
the VFS to expose files which contain the
--metadata flag.
For example, using rclone mount with
--metadata --vfs-metadata-extension .metadata we get
-$ ls -l /mnt/
-total 1048577
--rw-rw-r-- 1 user user 1073741824 Mar 3 16:03 1G
-
-$ cat /mnt/1G.metadata
-{
- "atime": "2025-03-04T17:34:22.317069787Z",
- "btime": "2025-03-03T16:03:37.708253808Z",
- "gid": "1000",
- "mode": "100664",
- "mtime": "2025-03-03T16:03:39.640238323Z",
- "uid": "1000"
-}
-
-$ ls -l /mnt/
-total 1048578
--rw-rw-r-- 1 user user 1073741824 Mar 3 16:03 1G
--rw-rw-r-- 1 user user 185 Mar 3 16:03 1G.metadata
+$ ls -l /mnt/
+total 1048577
+-rw-rw-r-- 1 user user 1073741824 Mar 3 16:03 1G
+
+$ cat /mnt/1G.metadata
+{
+ "atime": "2025-03-04T17:34:22.317069787Z",
+ "btime": "2025-03-03T16:03:37.708253808Z",
+ "gid": "1000",
+ "mode": "100664",
+ "mtime": "2025-03-03T16:03:39.640238323Z",
+ "uid": "1000"
+}
+
+$ ls -l /mnt/
+total 1048578
+-rw-rw-r-- 1 user user 1073741824 Mar 3 16:03 1G
+-rw-rw-r-- 1 user user 185 Mar 3 16:03 1G.metadata
If the file has no metadata it will be returned as {}
and if there is an error reading the metadata the error will be returned
as {"error":"error string"}.
@@ -9276,31 +9678,39 @@ backend on STDOUT in JSON format. This config will have any default
parameters for the backend added, but it won't use configuration from
environment variables or command line options - it is the job of the
proxy program to make a complete config.
-This config generated must have this extra parameter -
-_root - root to use for the backend
-And it may have this parameter - _obscure - comma
-separated strings for parameters to obscure
+This config generated must have this extra parameter
+
+_root - root to use for the backend
+
+And it may have this parameter
+
+_obscure - comma separated strings for parameters to
+obscure
+
If password authentication was used by the client, input to the proxy
process (on STDIN) would look similar to this:
-{
- "user": "me",
- "pass": "mypassword"
-}
+{
+ "user": "me",
+ "pass": "mypassword"
+}
If public-key authentication was used by the client, input to the
proxy process (on STDIN) would look similar to this:
-{
- "user": "me",
- "public_key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQDuwESFdAe14hVS6omeyX7edc...JQdf"
-}
+{
+ "user": "me",
+ "public_key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQDuwESFdAe14hVS6omeyX7edc...JQdf"
+}
And as an example return this on STDOUT
-{
- "type": "sftp",
- "_root": "",
- "_obscure": "pass",
- "user": "me",
- "pass": "mypassword",
- "host": "sftp.example.com"
-}
+{
+ "type": "sftp",
+ "_root": "",
+ "_obscure": "pass",
+ "user": "me",
+ "pass": "mypassword",
+ "host": "sftp.example.com"
+}
This would mean that an SFTP backend would be created on the fly for
the user and pass/public_key
returned in the output to the host given. Note that since
@@ -9368,7 +9778,7 @@ href="https://rclone.org/flags/">global flags page for global
options not listed here.
Filter Options
Flags for filtering directory listings
- --delete-excluded Delete files on dest excluded from sync
+ --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
--exclude-if-present stringArray Exclude directories if filename is present
@@ -9392,10 +9802,13 @@ options not listed here.
--min-age Duration Only transfer files older than this in s or suffix ms|s|m|h|d|w|M|y (default off)
--min-size SizeSuffix Only transfer files bigger than this in KiB or suffix B|K|M|G|T|P (default off)
See Also
+
+
- rclone serve
- Serve a remote over a protocol.
+
rclone serve http
Serve the remote over HTTP.
Synopsis
@@ -9456,13 +9869,16 @@ acceptable. Valid values are "tls1.0", "tls1.1", "tls1.2" and "tls1.3"
listen to all FDs passed by the service manager, if any (and ignore any
arguments passed by --addr).
This allows rclone to be a socket-activated service. It can be
-configured with .socket and .service unit files as described in
-https://www.freedesktop.org/software/systemd/man/latest/systemd.socket.html
+configured with .socket and .service unit files as described in https://www.freedesktop.org/software/systemd/man/latest/systemd.socket.html.
Socket activation can be tested ad-hoc with the
systemd-socket-activatecommand
- systemd-socket-activate -l 8000 -- rclone serve
+systemd-socket-activate -l 8000 -- rclone serve
This will socket-activate rclone on the first connection to port 8000
-over TCP. ### Template
+over TCP.
+Template
--template allows a user to specify a custom markup
template for HTTP and WebDAV serve functions. The server exports the
following markup to be used within the template to server pages:
@@ -9609,9 +10025,10 @@ considered as the username.
file. This is in standard apache format and supports MD5, SHA1 and
BCrypt for basic authentication. Bcrypt is recommended.
To create an htpasswd file:
-touch htpasswd
-htpasswd -B htpasswd user
-htpasswd -B htpasswd anotherUser
+touch htpasswd
+htpasswd -B htpasswd user
+htpasswd -B htpasswd anotherUser
The password file can be updated while rclone is running.
Use --realm to set the authentication realm.
Use --salt to change the password hashing salt from the
@@ -9631,8 +10048,8 @@ about files and directories (but not the data) in memory.
long a directory should be considered up to date and not refreshed from
the backend. Changes made through the VFS will appear immediately or
invalidate the cache.
---dir-cache-time duration Time to cache directory entries for (default 5m0s)
---poll-interval duration Time to wait between polling for changes. Must be smaller than dir-cache-time. Only on supported remotes. Set to 0 to disable (default 1m0s)
+ --dir-cache-time duration Time to cache directory entries for (default 5m0s)
+ --poll-interval duration Time to wait between polling for changes. Must be smaller than dir-cache-time. Only on supported remotes. Set to 0 to disable (default 1m0s)
However, changes made directly on the cloud storage by the web
interface or a different copy of rclone will only be picked up once the
directory cache expires if the backend configured does not support
@@ -9641,12 +10058,15 @@ picked up within the polling interval.
You can send a SIGHUP signal to rclone for it to flush
all directory caches, regardless of how old they are. Assuming only one
rclone instance is running, you can reset the cache like this:
-kill -SIGHUP $(pidof rclone)
+kill -SIGHUP $(pidof rclone)
If you configure rclone with a remote control then
you can use rclone rc to flush the whole directory cache:
-rclone rc vfs/forget
+rclone rc vfs/forget
Or individual files or directories:
-rclone rc vfs/forget file=path/to/file dir=path/to/dir
+rclone rc vfs/forget file=path/to/file dir=path/to/dir
VFS File Buffering
The --buffer-size flag determines the amount of memory,
that will be used to buffer data in advance.
@@ -9667,13 +10087,13 @@ system. It can be disabled at the cost of some compatibility.
write simultaneously to a file. See below for more details.
Note that the VFS cache is separate from the cache backend and you
may find that you need one or the other or both.
---cache-dir string Directory rclone will use for caching.
---vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
---vfs-cache-max-age duration Max time since last access of objects in the cache (default 1h0m0s)
---vfs-cache-max-size SizeSuffix Max total size of objects in the cache (default off)
---vfs-cache-min-free-space SizeSuffix Target minimum free space on the disk containing the cache (default off)
---vfs-cache-poll-interval duration Interval to poll the cache for stale objects (default 1m0s)
---vfs-write-back duration Time to writeback files after last use when using cache (default 5s)
+ --cache-dir string Directory rclone will use for caching.
+ --vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
+ --vfs-cache-max-age duration Max time since last access of objects in the cache (default 1h0m0s)
+ --vfs-cache-max-size SizeSuffix Max total size of objects in the cache (default off)
+ --vfs-cache-min-free-space SizeSuffix Target minimum free space on the disk containing the cache (default off)
+ --vfs-cache-poll-interval duration Interval to poll the cache for stale objects (default 1m0s)
+ --vfs-write-back duration Time to writeback files after last use when using cache (default 5s)
If run with -vv rclone will print the location of the
file cache. The files are stored in the user cache file area which is OS
dependent but can be controlled with --cache-dir or setting
@@ -9797,9 +10217,9 @@ specified. This can reduce the used download quota for some remotes by
requesting only chunks from the remote that are actually read, at the
cost of an increased number of requests.
These flags control the chunking:
---vfs-read-chunk-size SizeSuffix Read the source objects in chunks (default 128M)
---vfs-read-chunk-size-limit SizeSuffix Max chunk doubling size (default off)
---vfs-read-chunk-streams int The number of parallel streams to read at once
+ --vfs-read-chunk-size SizeSuffix Read the source objects in chunks (default 128M)
+ --vfs-read-chunk-size-limit SizeSuffix Max chunk doubling size (default off)
+ --vfs-read-chunk-streams int The number of parallel streams to read at once
The chunking behaves differently depending on the
--vfs-read-chunk-streams parameter.
chunked reading feature.
--no-modtime flag (or use --use-server-modtime
for a slightly different effect) as each read of the modification time
takes a transaction.
---no-checksum Don't compare checksums on up/download.
---no-modtime Don't read/write the modification time (can speed things up).
---no-seek Don't allow seeking in files.
---read-only Only allow read-only access.
+ --no-checksum Don't compare checksums on up/download.
+ --no-modtime Don't read/write the modification time (can speed things up).
+ --no-seek Don't allow seeking in files.
+ --read-only Only allow read-only access.
Sometimes rclone is delivered reads or writes out of order. Rather
than seeking rclone will wait a short time for the in sequence read or
write to come in. These flags only come into effect when not using an on
disk cache file.
---vfs-read-wait duration Time to wait for in-sequence read before seeking (default 20ms)
---vfs-write-wait duration Time to wait for in-sequence write before giving error (default 1s)
+ --vfs-read-wait duration Time to wait for in-sequence read before seeking (default 20ms)
+ --vfs-write-wait duration Time to wait for in-sequence write before giving error (default 1s)
When using VFS write caching (--vfs-cache-mode with
value writes or full), the global flag --transfers can be
set to adjust the number of parallel uploads of modified files from the
cache (the related global flag --checkers has no effect on
the VFS).
---transfers int Number of file transfers to run in parallel (default 4)
+ --transfers int Number of file transfers to run in parallel (default 4)
Symlinks
By default the VFS does not support symlinks. However this may be
enabled with either of the following flags:
---links Translate symlinks to/from regular files with a '.rclonelink' extension.
---vfs-links Translate symlinks to/from regular files with a '.rclonelink' extension for the VFS
+ --links Translate symlinks to/from regular files with a '.rclonelink' extension.
+ --vfs-links Translate symlinks to/from regular files with a '.rclonelink' extension for the VFS
As most cloud storage systems do not support symlinks directly,
rclone stores the symlink as a normal file with a special extension. So
a file which appears as a symlink link-to-file.txt would be
@@ -9890,7 +10310,7 @@ commands yet.
A limitation of the current implementation is that it expects the
caller to resolve sub-symlinks. For example given this directory
tree
-.
+.
├── dir
│ └── file.txt
└── linked-dir -> dir
@@ -9960,7 +10380,7 @@ an error, similar to how this is handled in
This flag allows you to manually set the statistics about the filing
system. It can be useful when those statistics cannot be read correctly
automatically.
---vfs-disk-space-total-size Manually set the total disk space size (example: 256G, default: -1)
+ --vfs-disk-space-total-size Manually set the total disk space size (example: 256G, default: -1)
Alternate report of used
bytes
Some backends, most notably S3, do not report the amount of bytes
@@ -9970,10 +10390,10 @@ used. If you need this information to be available when running
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.
+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.
VFS Metadata
If you use the --vfs-metadata-extension flag you can get
the VFS to expose files which contain the
--metadata flag.
For example, using rclone mount with
--metadata --vfs-metadata-extension .metadata we get
-$ ls -l /mnt/
-total 1048577
--rw-rw-r-- 1 user user 1073741824 Mar 3 16:03 1G
-
-$ cat /mnt/1G.metadata
-{
- "atime": "2025-03-04T17:34:22.317069787Z",
- "btime": "2025-03-03T16:03:37.708253808Z",
- "gid": "1000",
- "mode": "100664",
- "mtime": "2025-03-03T16:03:39.640238323Z",
- "uid": "1000"
-}
-
-$ ls -l /mnt/
-total 1048578
--rw-rw-r-- 1 user user 1073741824 Mar 3 16:03 1G
--rw-rw-r-- 1 user user 185 Mar 3 16:03 1G.metadata
+$ ls -l /mnt/
+total 1048577
+-rw-rw-r-- 1 user user 1073741824 Mar 3 16:03 1G
+
+$ cat /mnt/1G.metadata
+{
+ "atime": "2025-03-04T17:34:22.317069787Z",
+ "btime": "2025-03-03T16:03:37.708253808Z",
+ "gid": "1000",
+ "mode": "100664",
+ "mtime": "2025-03-03T16:03:39.640238323Z",
+ "uid": "1000"
+}
+
+$ ls -l /mnt/
+total 1048578
+-rw-rw-r-- 1 user user 1073741824 Mar 3 16:03 1G
+-rw-rw-r-- 1 user user 185 Mar 3 16:03 1G.metadata
If the file has no metadata it will be returned as {}
and if there is an error reading the metadata the error will be returned
as {"error":"error string"}.
@@ -10026,31 +10447,39 @@ backend on STDOUT in JSON format. This config will have any default
parameters for the backend added, but it won't use configuration from
environment variables or command line options - it is the job of the
proxy program to make a complete config.
-This config generated must have this extra parameter -
-_root - root to use for the backend
-And it may have this parameter - _obscure - comma
-separated strings for parameters to obscure
+This config generated must have this extra parameter
+
+_root - root to use for the backend
+
+And it may have this parameter
+
+_obscure - comma separated strings for parameters to
+obscure
+
If password authentication was used by the client, input to the proxy
process (on STDIN) would look similar to this:
-{
- "user": "me",
- "pass": "mypassword"
-}
+{
+ "user": "me",
+ "pass": "mypassword"
+}
If public-key authentication was used by the client, input to the
proxy process (on STDIN) would look similar to this:
-{
- "user": "me",
- "public_key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQDuwESFdAe14hVS6omeyX7edc...JQdf"
-}
+{
+ "user": "me",
+ "public_key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQDuwESFdAe14hVS6omeyX7edc...JQdf"
+}
And as an example return this on STDOUT
-{
- "type": "sftp",
- "_root": "",
- "_obscure": "pass",
- "user": "me",
- "pass": "mypassword",
- "host": "sftp.example.com"
-}
+{
+ "type": "sftp",
+ "_root": "",
+ "_obscure": "pass",
+ "user": "me",
+ "pass": "mypassword",
+ "host": "sftp.example.com"
+}
This would mean that an SFTP backend would be created on the fly for
the user and pass/public_key
returned in the output to the host given. Note that since
@@ -10128,7 +10557,7 @@ href="https://rclone.org/flags/">global flags page for global
options not listed here.
Filter Options
Flags for filtering directory listings
- --delete-excluded Delete files on dest excluded from sync
+ --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
--exclude-if-present stringArray Exclude directories if filename is present
@@ -10152,10 +10581,13 @@ options not listed here.
--min-age Duration Only transfer files older than this in s or suffix ms|s|m|h|d|w|M|y (default off)
--min-size SizeSuffix Only transfer files bigger than this in KiB or suffix B|K|M|G|T|P (default off)
See Also
+
+
- rclone serve
- Serve a remote over a protocol.
+
rclone serve nfs
Serve the remote as an NFS mount
Synopsis
@@ -10207,10 +10639,12 @@ default is 1000000, but consider lowering this limit if the
server's system resource usage causes problems. This is only used by the
memory type cache.
To serve NFS over the network use following command:
-rclone serve nfs remote: --addr 0.0.0.0:$PORT --vfs-cache-mode=full
+rclone serve nfs remote: --addr 0.0.0.0:$PORT --vfs-cache-mode=full
This specifies a port that can be used in the mount command. To mount
the server under Linux/macOS, use the following command:
-mount -t nfs -o port=$PORT,mountport=$PORT,tcp $HOSTNAME:/ path/to/mountpoint
+mount -t nfs -o port=$PORT,mountport=$PORT,tcp $HOSTNAME:/ path/to/mountpoint
Where $PORT is the same port number used in the
serve nfs command and $HOSTNAME is the network
address of the machine that serve nfs was run on.
@@ -10236,8 +10670,8 @@ about files and directories (but not the data) in memory.
long a directory should be considered up to date and not refreshed from
the backend. Changes made through the VFS will appear immediately or
invalidate the cache.
---dir-cache-time duration Time to cache directory entries for (default 5m0s)
---poll-interval duration Time to wait between polling for changes. Must be smaller than dir-cache-time. Only on supported remotes. Set to 0 to disable (default 1m0s)
+ --dir-cache-time duration Time to cache directory entries for (default 5m0s)
+ --poll-interval duration Time to wait between polling for changes. Must be smaller than dir-cache-time. Only on supported remotes. Set to 0 to disable (default 1m0s)
However, changes made directly on the cloud storage by the web
interface or a different copy of rclone will only be picked up once the
directory cache expires if the backend configured does not support
@@ -10246,12 +10680,15 @@ picked up within the polling interval.
You can send a SIGHUP signal to rclone for it to flush
all directory caches, regardless of how old they are. Assuming only one
rclone instance is running, you can reset the cache like this:
-kill -SIGHUP $(pidof rclone)
+kill -SIGHUP $(pidof rclone)
If you configure rclone with a remote control then
you can use rclone rc to flush the whole directory cache:
-rclone rc vfs/forget
+rclone rc vfs/forget
Or individual files or directories:
-rclone rc vfs/forget file=path/to/file dir=path/to/dir
+rclone rc vfs/forget file=path/to/file dir=path/to/dir
VFS File Buffering
The --buffer-size flag determines the amount of memory,
that will be used to buffer data in advance.
@@ -10272,13 +10709,13 @@ system. It can be disabled at the cost of some compatibility.
write simultaneously to a file. See below for more details.
Note that the VFS cache is separate from the cache backend and you
may find that you need one or the other or both.
---cache-dir string Directory rclone will use for caching.
---vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
---vfs-cache-max-age duration Max time since last access of objects in the cache (default 1h0m0s)
---vfs-cache-max-size SizeSuffix Max total size of objects in the cache (default off)
---vfs-cache-min-free-space SizeSuffix Target minimum free space on the disk containing the cache (default off)
---vfs-cache-poll-interval duration Interval to poll the cache for stale objects (default 1m0s)
---vfs-write-back duration Time to writeback files after last use when using cache (default 5s)
+ --cache-dir string Directory rclone will use for caching.
+ --vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
+ --vfs-cache-max-age duration Max time since last access of objects in the cache (default 1h0m0s)
+ --vfs-cache-max-size SizeSuffix Max total size of objects in the cache (default off)
+ --vfs-cache-min-free-space SizeSuffix Target minimum free space on the disk containing the cache (default off)
+ --vfs-cache-poll-interval duration Interval to poll the cache for stale objects (default 1m0s)
+ --vfs-write-back duration Time to writeback files after last use when using cache (default 5s)
If run with -vv rclone will print the location of the
file cache. The files are stored in the user cache file area which is OS
dependent but can be controlled with --cache-dir or setting
@@ -10402,9 +10839,9 @@ specified. This can reduce the used download quota for some remotes by
requesting only chunks from the remote that are actually read, at the
cost of an increased number of requests.
These flags control the chunking:
---vfs-read-chunk-size SizeSuffix Read the source objects in chunks (default 128M)
---vfs-read-chunk-size-limit SizeSuffix Max chunk doubling size (default off)
---vfs-read-chunk-streams int The number of parallel streams to read at once
+ --vfs-read-chunk-size SizeSuffix Read the source objects in chunks (default 128M)
+ --vfs-read-chunk-size-limit SizeSuffix Max chunk doubling size (default off)
+ --vfs-read-chunk-streams int The number of parallel streams to read at once
The chunking behaves differently depending on the
--vfs-read-chunk-streams parameter.
chunked reading feature.
--no-modtime flag (or use --use-server-modtime
for a slightly different effect) as each read of the modification time
takes a transaction.
---no-checksum Don't compare checksums on up/download.
---no-modtime Don't read/write the modification time (can speed things up).
---no-seek Don't allow seeking in files.
---read-only Only allow read-only access.
+ --no-checksum Don't compare checksums on up/download.
+ --no-modtime Don't read/write the modification time (can speed things up).
+ --no-seek Don't allow seeking in files.
+ --read-only Only allow read-only access.
Sometimes rclone is delivered reads or writes out of order. Rather
than seeking rclone will wait a short time for the in sequence read or
write to come in. These flags only come into effect when not using an on
disk cache file.
---vfs-read-wait duration Time to wait for in-sequence read before seeking (default 20ms)
---vfs-write-wait duration Time to wait for in-sequence write before giving error (default 1s)
+ --vfs-read-wait duration Time to wait for in-sequence read before seeking (default 20ms)
+ --vfs-write-wait duration Time to wait for in-sequence write before giving error (default 1s)
When using VFS write caching (--vfs-cache-mode with
value writes or full), the global flag --transfers can be
set to adjust the number of parallel uploads of modified files from the
cache (the related global flag --checkers has no effect on
the VFS).
---transfers int Number of file transfers to run in parallel (default 4)
+ --transfers int Number of file transfers to run in parallel (default 4)
Symlinks
By default the VFS does not support symlinks. However this may be
enabled with either of the following flags:
---links Translate symlinks to/from regular files with a '.rclonelink' extension.
---vfs-links Translate symlinks to/from regular files with a '.rclonelink' extension for the VFS
+ --links Translate symlinks to/from regular files with a '.rclonelink' extension.
+ --vfs-links Translate symlinks to/from regular files with a '.rclonelink' extension for the VFS
As most cloud storage systems do not support symlinks directly,
rclone stores the symlink as a normal file with a special extension. So
a file which appears as a symlink link-to-file.txt would be
@@ -10495,7 +10932,7 @@ commands yet.
A limitation of the current implementation is that it expects the
caller to resolve sub-symlinks. For example given this directory
tree
-.
+.
├── dir
│ └── file.txt
└── linked-dir -> dir
@@ -10565,7 +11002,7 @@ an error, similar to how this is handled in
This flag allows you to manually set the statistics about the filing
system. It can be useful when those statistics cannot be read correctly
automatically.
---vfs-disk-space-total-size Manually set the total disk space size (example: 256G, default: -1)
+ --vfs-disk-space-total-size Manually set the total disk space size (example: 256G, default: -1)
Alternate report of used
bytes
Some backends, most notably S3, do not report the amount of bytes
@@ -10575,10 +11012,10 @@ used. If you need this information to be available when running
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.
+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.
VFS Metadata
If you use the --vfs-metadata-extension flag you can get
the VFS to expose files which contain the
--metadata flag.
For example, using rclone mount with
--metadata --vfs-metadata-extension .metadata we get
-$ ls -l /mnt/
-total 1048577
--rw-rw-r-- 1 user user 1073741824 Mar 3 16:03 1G
-
-$ cat /mnt/1G.metadata
-{
- "atime": "2025-03-04T17:34:22.317069787Z",
- "btime": "2025-03-03T16:03:37.708253808Z",
- "gid": "1000",
- "mode": "100664",
- "mtime": "2025-03-03T16:03:39.640238323Z",
- "uid": "1000"
-}
-
-$ ls -l /mnt/
-total 1048578
--rw-rw-r-- 1 user user 1073741824 Mar 3 16:03 1G
--rw-rw-r-- 1 user user 185 Mar 3 16:03 1G.metadata
+$ ls -l /mnt/
+total 1048577
+-rw-rw-r-- 1 user user 1073741824 Mar 3 16:03 1G
+
+$ cat /mnt/1G.metadata
+{
+ "atime": "2025-03-04T17:34:22.317069787Z",
+ "btime": "2025-03-03T16:03:37.708253808Z",
+ "gid": "1000",
+ "mode": "100664",
+ "mtime": "2025-03-03T16:03:39.640238323Z",
+ "uid": "1000"
+}
+
+$ ls -l /mnt/
+total 1048578
+-rw-rw-r-- 1 user user 1073741824 Mar 3 16:03 1G
+-rw-rw-r-- 1 user user 185 Mar 3 16:03 1G.metadata
If the file has no metadata it will be returned as {}
and if there is an error reading the metadata the error will be returned
as {"error":"error string"}.
@@ -10656,7 +11094,7 @@ href="https://rclone.org/flags/">global flags page for global
options not listed here.
Filter Options
Flags for filtering directory listings
- --delete-excluded Delete files on dest excluded from sync
+ --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
--exclude-if-present stringArray Exclude directories if filename is present
@@ -10680,10 +11118,13 @@ options not listed here.
--min-age Duration Only transfer files older than this in s or suffix ms|s|m|h|d|w|M|y (default off)
--min-size SizeSuffix Only transfer files bigger than this in KiB or suffix B|K|M|G|T|P (default off)
See Also
+
+
- rclone serve
- Serve a remote over a protocol.
+
rclone serve restic
Serve the remote for restic's REST API.
Synopsis
@@ -10704,7 +11145,8 @@ example "rclone lsd remote:". You may have called the remote something
other than "remote:" - just substitute whatever you called it in the
following instructions.
Now start the rclone restic server
-rclone serve restic -v remote:backup
+rclone serve restic -v remote:backup
Where you can replace "backup" in the above by whatever path in the
remote you wish to use.
By default this will serve on "localhost:8080" you can change this
@@ -10724,28 +11166,30 @@ rclone.
For the example above you will want to use "http://localhost:8080/"
as the URL for the REST server.
For example:
-$ export RESTIC_REPOSITORY=rest:http://localhost:8080/
-$ export RESTIC_PASSWORD=yourpassword
-$ restic init
-created restic backend 8b1a4b56ae at rest:http://localhost:8080/
-
-Please note that knowledge of your password is required to access
-the repository. Losing your password means that your data is
-irrecoverably lost.
-$ restic backup /path/to/files/to/backup
-scan [/path/to/files/to/backup]
-scanned 189 directories, 312 files in 0:00
-[0:00] 100.00% 38.128 MiB / 38.128 MiB 501 / 501 items 0 errors ETA 0:00
-duration: 0:00
-snapshot 45c8fdd8 saved
+$ export RESTIC_REPOSITORY=rest:http://localhost:8080/
+$ export RESTIC_PASSWORD=yourpassword
+$ restic init
+created restic backend 8b1a4b56ae at rest:http://localhost:8080/
+
+Please note that knowledge of your password is required to access
+the repository. Losing your password means that your data is
+irrecoverably lost.
+$ restic backup /path/to/files/to/backup
+scan [/path/to/files/to/backup]
+scanned 189 directories, 312 files in 0:00
+[0:00] 100.00% 38.128 MiB / 38.128 MiB 501 / 501 items 0 errors ETA 0:00
+duration: 0:00
+snapshot 45c8fdd8 saved
Multiple repositories
Note that you can use the endpoint to host multiple repositories. Do
this by adding a directory name or path after the URL. Note that these
must end with /. Eg
-$ export RESTIC_REPOSITORY=rest:http://localhost:8080/user1repo/
-# backup user1 stuff
-$ export RESTIC_REPOSITORY=rest:http://localhost:8080/user2repo/
-# backup user2 stuff
+$ export RESTIC_REPOSITORY=rest:http://localhost:8080/user1repo/
+# backup user1 stuff
+$ export RESTIC_REPOSITORY=rest:http://localhost:8080/user2repo/
+# backup user2 stuff
Private repositories
The--private-repos flag can be used to limit users to
repositories starting with a path of
@@ -10798,13 +11242,16 @@ acceptable. Valid values are "tls1.0", "tls1.1", "tls1.2" and "tls1.3"
listen to all FDs passed by the service manager, if any (and ignore any
arguments passed by --addr).
This allows rclone to be a socket-activated service. It can be
-configured with .socket and .service unit files as described in
-https://www.freedesktop.org/software/systemd/man/latest/systemd.socket.html
+configured with .socket and .service unit files as described in https://www.freedesktop.org/software/systemd/man/latest/systemd.socket.html.
Socket activation can be tested ad-hoc with the
systemd-socket-activatecommand
- systemd-socket-activate -l 8000 -- rclone serve
+systemd-socket-activate -l 8000 -- rclone serve
This will socket-activate rclone on the first connection to port 8000
-over TCP. ### Authentication
+over TCP.
+Authentication
By default this will serve files without needing a login.
You can either use an htpasswd file which can take lots of users, or
set a single username and password with the --user and
@@ -10823,9 +11270,10 @@ considered as the username.
file. This is in standard apache format and supports MD5, SHA1 and
BCrypt for basic authentication. Bcrypt is recommended.
To create an htpasswd file:
-touch htpasswd
-htpasswd -B htpasswd user
-htpasswd -B htpasswd anotherUser
+touch htpasswd
+htpasswd -B htpasswd user
+htpasswd -B htpasswd anotherUser
The password file can be updated while rclone is running.
Use --realm to set the authentication realm.
Use --salt to change the password hashing salt from the
@@ -10856,10 +11304,13 @@ default.
See the global flags page for
global options not listed here.
See Also
+
+
- rclone serve
- Serve a remote over a protocol.
+
rclone serve s3
Serve remote:path over s3.
Synopsis
@@ -10893,13 +11344,16 @@ clients which rely on the Etag being the MD5.
Quickstart
For a simple set up, to serve remote:path over s3, run
the server like this:
-rclone serve s3 --auth-key ACCESS_KEY_ID,SECRET_ACCESS_KEY remote:path
+rclone serve s3 --auth-key ACCESS_KEY_ID,SECRET_ACCESS_KEY remote:path
For example, to use a simple folder in the filesystem, run the server
with a command like this:
-rclone serve s3 --auth-key ACCESS_KEY_ID,SECRET_ACCESS_KEY local:/path/to/folder
+rclone serve s3 --auth-key ACCESS_KEY_ID,SECRET_ACCESS_KEY local:/path/to/folder
The rclone.conf for the server could look like this:
-[local]
-type = local
+[local]
+type = local
The local configuration is optional though. If you run
the server with a remote:path like
/path/to/folder (without the local: prefix and
@@ -10908,13 +11362,14 @@ default configuration, which will be visible as a warning in the logs.
But it will run nonetheless.
This will be compatible with an rclone (client) remote configuration
which is defined like this:
-[serves3]
-type = s3
-provider = Rclone
-endpoint = http://127.0.0.1:8080/
-access_key_id = ACCESS_KEY_ID
-secret_access_key = SECRET_ACCESS_KEY
-use_multipart_uploads = false
+[serves3]
+type = s3
+provider = Rclone
+endpoint = http://127.0.0.1:8080/
+access_key_id = ACCESS_KEY_ID
+secret_access_key = SECRET_ACCESS_KEY
+use_multipart_uploads = false
Note that setting use_multipart_uploads = false is to
work around a bug which will be fixed in due
course.
@@ -10976,7 +11431,7 @@ operations.
Other operations will return error Unimplemented.
-Authentication
+Authentication
By default this will serve files without needing a login.
You can either use an htpasswd file which can take lots of users, or
set a single username and password with the --user and
@@ -10995,9 +11450,10 @@ considered as the username.
file. This is in standard apache format and supports MD5, SHA1 and
BCrypt for basic authentication. Bcrypt is recommended.
To create an htpasswd file:
-touch htpasswd
-htpasswd -B htpasswd user
-htpasswd -B htpasswd anotherUser
+touch htpasswd
+htpasswd -B htpasswd user
+htpasswd -B htpasswd anotherUser
The password file can be updated while rclone is running.
Use --realm to set the authentication realm.
Use --salt to change the password hashing salt from the
@@ -11050,13 +11506,16 @@ acceptable. Valid values are "tls1.0", "tls1.1", "tls1.2" and "tls1.3"
listen to all FDs passed by the service manager, if any (and ignore any
arguments passed by --addr).
This allows rclone to be a socket-activated service. It can be
-configured with .socket and .service unit files as described in
-https://www.freedesktop.org/software/systemd/man/latest/systemd.socket.html
+configured with .socket and .service unit files as described in https://www.freedesktop.org/software/systemd/man/latest/systemd.socket.html.
Socket activation can be tested ad-hoc with the
systemd-socket-activatecommand
- systemd-socket-activate -l 8000 -- rclone serve
+systemd-socket-activate -l 8000 -- rclone serve
This will socket-activate rclone on the first connection to port 8000
-over TCP. ## VFS - Virtual File System
+over TCP.
+VFS - Virtual File System
This command uses the VFS layer. This adapts the cloud storage
objects that rclone uses into something which looks much more like a
disk filing system.
@@ -11071,8 +11530,8 @@ about files and directories (but not the data) in memory.
long a directory should be considered up to date and not refreshed from
the backend. Changes made through the VFS will appear immediately or
invalidate the cache.
---dir-cache-time duration Time to cache directory entries for (default 5m0s)
---poll-interval duration Time to wait between polling for changes. Must be smaller than dir-cache-time. Only on supported remotes. Set to 0 to disable (default 1m0s)
+ --dir-cache-time duration Time to cache directory entries for (default 5m0s)
+ --poll-interval duration Time to wait between polling for changes. Must be smaller than dir-cache-time. Only on supported remotes. Set to 0 to disable (default 1m0s)
However, changes made directly on the cloud storage by the web
interface or a different copy of rclone will only be picked up once the
directory cache expires if the backend configured does not support
@@ -11081,12 +11540,15 @@ picked up within the polling interval.
You can send a SIGHUP signal to rclone for it to flush
all directory caches, regardless of how old they are. Assuming only one
rclone instance is running, you can reset the cache like this:
-kill -SIGHUP $(pidof rclone)
+kill -SIGHUP $(pidof rclone)
If you configure rclone with a remote control then
you can use rclone rc to flush the whole directory cache:
-rclone rc vfs/forget
+rclone rc vfs/forget
Or individual files or directories:
-rclone rc vfs/forget file=path/to/file dir=path/to/dir
+rclone rc vfs/forget file=path/to/file dir=path/to/dir
VFS File Buffering
The --buffer-size flag determines the amount of memory,
that will be used to buffer data in advance.
@@ -11107,13 +11569,13 @@ system. It can be disabled at the cost of some compatibility.
write simultaneously to a file. See below for more details.
Note that the VFS cache is separate from the cache backend and you
may find that you need one or the other or both.
---cache-dir string Directory rclone will use for caching.
---vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
---vfs-cache-max-age duration Max time since last access of objects in the cache (default 1h0m0s)
---vfs-cache-max-size SizeSuffix Max total size of objects in the cache (default off)
---vfs-cache-min-free-space SizeSuffix Target minimum free space on the disk containing the cache (default off)
---vfs-cache-poll-interval duration Interval to poll the cache for stale objects (default 1m0s)
---vfs-write-back duration Time to writeback files after last use when using cache (default 5s)
+ --cache-dir string Directory rclone will use for caching.
+ --vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
+ --vfs-cache-max-age duration Max time since last access of objects in the cache (default 1h0m0s)
+ --vfs-cache-max-size SizeSuffix Max total size of objects in the cache (default off)
+ --vfs-cache-min-free-space SizeSuffix Target minimum free space on the disk containing the cache (default off)
+ --vfs-cache-poll-interval duration Interval to poll the cache for stale objects (default 1m0s)
+ --vfs-write-back duration Time to writeback files after last use when using cache (default 5s)
If run with -vv rclone will print the location of the
file cache. The files are stored in the user cache file area which is OS
dependent but can be controlled with --cache-dir or setting
@@ -11237,9 +11699,9 @@ specified. This can reduce the used download quota for some remotes by
requesting only chunks from the remote that are actually read, at the
cost of an increased number of requests.
These flags control the chunking:
---vfs-read-chunk-size SizeSuffix Read the source objects in chunks (default 128M)
---vfs-read-chunk-size-limit SizeSuffix Max chunk doubling size (default off)
---vfs-read-chunk-streams int The number of parallel streams to read at once
+ --vfs-read-chunk-size SizeSuffix Read the source objects in chunks (default 128M)
+ --vfs-read-chunk-size-limit SizeSuffix Max chunk doubling size (default off)
+ --vfs-read-chunk-streams int The number of parallel streams to read at once
The chunking behaves differently depending on the
--vfs-read-chunk-streams parameter.
chunked reading feature.
--no-modtime flag (or use --use-server-modtime
for a slightly different effect) as each read of the modification time
takes a transaction.
---no-checksum Don't compare checksums on up/download.
---no-modtime Don't read/write the modification time (can speed things up).
---no-seek Don't allow seeking in files.
---read-only Only allow read-only access.
+ --no-checksum Don't compare checksums on up/download.
+ --no-modtime Don't read/write the modification time (can speed things up).
+ --no-seek Don't allow seeking in files.
+ --read-only Only allow read-only access.
Sometimes rclone is delivered reads or writes out of order. Rather
than seeking rclone will wait a short time for the in sequence read or
write to come in. These flags only come into effect when not using an on
disk cache file.
---vfs-read-wait duration Time to wait for in-sequence read before seeking (default 20ms)
---vfs-write-wait duration Time to wait for in-sequence write before giving error (default 1s)
+ --vfs-read-wait duration Time to wait for in-sequence read before seeking (default 20ms)
+ --vfs-write-wait duration Time to wait for in-sequence write before giving error (default 1s)
When using VFS write caching (--vfs-cache-mode with
value writes or full), the global flag --transfers can be
set to adjust the number of parallel uploads of modified files from the
cache (the related global flag --checkers has no effect on
the VFS).
---transfers int Number of file transfers to run in parallel (default 4)
+ --transfers int Number of file transfers to run in parallel (default 4)
Symlinks
By default the VFS does not support symlinks. However this may be
enabled with either of the following flags:
---links Translate symlinks to/from regular files with a '.rclonelink' extension.
---vfs-links Translate symlinks to/from regular files with a '.rclonelink' extension for the VFS
+ --links Translate symlinks to/from regular files with a '.rclonelink' extension.
+ --vfs-links Translate symlinks to/from regular files with a '.rclonelink' extension for the VFS
As most cloud storage systems do not support symlinks directly,
rclone stores the symlink as a normal file with a special extension. So
a file which appears as a symlink link-to-file.txt would be
@@ -11330,7 +11792,7 @@ commands yet.
A limitation of the current implementation is that it expects the
caller to resolve sub-symlinks. For example given this directory
tree
-.
+.
├── dir
│ └── file.txt
└── linked-dir -> dir
@@ -11400,7 +11862,7 @@ an error, similar to how this is handled in
This flag allows you to manually set the statistics about the filing
system. It can be useful when those statistics cannot be read correctly
automatically.
---vfs-disk-space-total-size Manually set the total disk space size (example: 256G, default: -1)
+ --vfs-disk-space-total-size Manually set the total disk space size (example: 256G, default: -1)
Alternate report of used
bytes
Some backends, most notably S3, do not report the amount of bytes
@@ -11410,10 +11872,10 @@ used. If you need this information to be available when running
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.
+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.
VFS Metadata
If you use the --vfs-metadata-extension flag you can get
the VFS to expose files which contain the
--metadata flag.
For example, using rclone mount with
--metadata --vfs-metadata-extension .metadata we get
-$ ls -l /mnt/
-total 1048577
--rw-rw-r-- 1 user user 1073741824 Mar 3 16:03 1G
-
-$ cat /mnt/1G.metadata
-{
- "atime": "2025-03-04T17:34:22.317069787Z",
- "btime": "2025-03-03T16:03:37.708253808Z",
- "gid": "1000",
- "mode": "100664",
- "mtime": "2025-03-03T16:03:39.640238323Z",
- "uid": "1000"
-}
-
-$ ls -l /mnt/
-total 1048578
--rw-rw-r-- 1 user user 1073741824 Mar 3 16:03 1G
--rw-rw-r-- 1 user user 185 Mar 3 16:03 1G.metadata
+$ ls -l /mnt/
+total 1048577
+-rw-rw-r-- 1 user user 1073741824 Mar 3 16:03 1G
+
+$ cat /mnt/1G.metadata
+{
+ "atime": "2025-03-04T17:34:22.317069787Z",
+ "btime": "2025-03-03T16:03:37.708253808Z",
+ "gid": "1000",
+ "mode": "100664",
+ "mtime": "2025-03-03T16:03:39.640238323Z",
+ "uid": "1000"
+}
+
+$ ls -l /mnt/
+total 1048578
+-rw-rw-r-- 1 user user 1073741824 Mar 3 16:03 1G
+-rw-rw-r-- 1 user user 185 Mar 3 16:03 1G.metadata
If the file has no metadata it will be returned as {}
and if there is an error reading the metadata the error will be returned
as {"error":"error string"}.
@@ -11508,7 +11971,7 @@ href="https://rclone.org/flags/">global flags page for global
options not listed here.
Filter Options
Flags for filtering directory listings
- --delete-excluded Delete files on dest excluded from sync
+ --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
--exclude-if-present stringArray Exclude directories if filename is present
@@ -11532,10 +11995,13 @@ options not listed here.
--min-age Duration Only transfer files older than this in s or suffix ms|s|m|h|d|w|M|y (default off)
--min-size SizeSuffix Only transfer files bigger than this in KiB or suffix B|K|M|G|T|P (default off)
See Also
+
+
- rclone serve
- Serve a remote over a protocol.
+
rclone serve sftp
Serve the remote over SFTP.
Synopsis
@@ -11572,11 +12038,13 @@ reachable externally then supply --addr :2022 for
example.
This also supports being run with socket activation, in which case it
will listen on the first passed FD. It can be configured with .socket
-and .service unit files as described in
-https://www.freedesktop.org/software/systemd/man/latest/systemd.socket.html
+and .service unit files as described in https://www.freedesktop.org/software/systemd/man/latest/systemd.socket.html.
Socket activation can be tested ad-hoc with the
systemd-socket-activatecommand:
-systemd-socket-activate -l 2222 -- rclone serve sftp :local:vfs/
+systemd-socket-activate -l 2222 -- rclone serve sftp :local:vfs/
This will socket-activate rclone on the first connection to port 2222
over TCP.
Note that the default of --vfs-cache-mode off is fine
@@ -11585,7 +12053,7 @@ clients.
If --stdio is specified, rclone will serve SFTP over
stdio, which can be used with sshd via ~/.ssh/authorized_keys, for
example:
-restrict,command="rclone serve sftp --stdio ./photos" ssh-rsa ...
+restrict,command="rclone serve sftp --stdio ./photos" ssh-rsa ...
On the client you need to set --transfers 1 when using
--stdio. Otherwise multiple instances of the rclone server
are started by OpenSSH which can lead to "corrupted on transfer" errors.
@@ -11597,7 +12065,7 @@ being used. Omitting "restrict" and using
--sftp-path-override to enable checksumming is possible but
less secure and you could use the SFTP server provided by OpenSSH in
this case.
-VFS - Virtual File System
+VFS - Virtual File System
This command uses the VFS layer. This adapts the cloud storage
objects that rclone uses into something which looks much more like a
disk filing system.
@@ -11612,8 +12080,8 @@ about files and directories (but not the data) in memory.
long a directory should be considered up to date and not refreshed from
the backend. Changes made through the VFS will appear immediately or
invalidate the cache.
---dir-cache-time duration Time to cache directory entries for (default 5m0s)
---poll-interval duration Time to wait between polling for changes. Must be smaller than dir-cache-time. Only on supported remotes. Set to 0 to disable (default 1m0s)
+ --dir-cache-time duration Time to cache directory entries for (default 5m0s)
+ --poll-interval duration Time to wait between polling for changes. Must be smaller than dir-cache-time. Only on supported remotes. Set to 0 to disable (default 1m0s)
However, changes made directly on the cloud storage by the web
interface or a different copy of rclone will only be picked up once the
directory cache expires if the backend configured does not support
@@ -11622,12 +12090,15 @@ picked up within the polling interval.
You can send a SIGHUP signal to rclone for it to flush
all directory caches, regardless of how old they are. Assuming only one
rclone instance is running, you can reset the cache like this:
-kill -SIGHUP $(pidof rclone)
+kill -SIGHUP $(pidof rclone)
If you configure rclone with a remote control then
you can use rclone rc to flush the whole directory cache:
-rclone rc vfs/forget
+rclone rc vfs/forget
Or individual files or directories:
-rclone rc vfs/forget file=path/to/file dir=path/to/dir
+rclone rc vfs/forget file=path/to/file dir=path/to/dir
VFS File Buffering
The --buffer-size flag determines the amount of memory,
that will be used to buffer data in advance.
@@ -11648,13 +12119,13 @@ system. It can be disabled at the cost of some compatibility.
write simultaneously to a file. See below for more details.
Note that the VFS cache is separate from the cache backend and you
may find that you need one or the other or both.
---cache-dir string Directory rclone will use for caching.
---vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
---vfs-cache-max-age duration Max time since last access of objects in the cache (default 1h0m0s)
---vfs-cache-max-size SizeSuffix Max total size of objects in the cache (default off)
---vfs-cache-min-free-space SizeSuffix Target minimum free space on the disk containing the cache (default off)
---vfs-cache-poll-interval duration Interval to poll the cache for stale objects (default 1m0s)
---vfs-write-back duration Time to writeback files after last use when using cache (default 5s)
+ --cache-dir string Directory rclone will use for caching.
+ --vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
+ --vfs-cache-max-age duration Max time since last access of objects in the cache (default 1h0m0s)
+ --vfs-cache-max-size SizeSuffix Max total size of objects in the cache (default off)
+ --vfs-cache-min-free-space SizeSuffix Target minimum free space on the disk containing the cache (default off)
+ --vfs-cache-poll-interval duration Interval to poll the cache for stale objects (default 1m0s)
+ --vfs-write-back duration Time to writeback files after last use when using cache (default 5s)
If run with -vv rclone will print the location of the
file cache. The files are stored in the user cache file area which is OS
dependent but can be controlled with --cache-dir or setting
@@ -11778,9 +12249,9 @@ specified. This can reduce the used download quota for some remotes by
requesting only chunks from the remote that are actually read, at the
cost of an increased number of requests.
These flags control the chunking:
---vfs-read-chunk-size SizeSuffix Read the source objects in chunks (default 128M)
---vfs-read-chunk-size-limit SizeSuffix Max chunk doubling size (default off)
---vfs-read-chunk-streams int The number of parallel streams to read at once
+ --vfs-read-chunk-size SizeSuffix Read the source objects in chunks (default 128M)
+ --vfs-read-chunk-size-limit SizeSuffix Max chunk doubling size (default off)
+ --vfs-read-chunk-streams int The number of parallel streams to read at once
The chunking behaves differently depending on the
--vfs-read-chunk-streams parameter.
chunked reading feature.
--no-modtime flag (or use --use-server-modtime
for a slightly different effect) as each read of the modification time
takes a transaction.
---no-checksum Don't compare checksums on up/download.
---no-modtime Don't read/write the modification time (can speed things up).
---no-seek Don't allow seeking in files.
---read-only Only allow read-only access.
+ --no-checksum Don't compare checksums on up/download.
+ --no-modtime Don't read/write the modification time (can speed things up).
+ --no-seek Don't allow seeking in files.
+ --read-only Only allow read-only access.
Sometimes rclone is delivered reads or writes out of order. Rather
than seeking rclone will wait a short time for the in sequence read or
write to come in. These flags only come into effect when not using an on
disk cache file.
---vfs-read-wait duration Time to wait for in-sequence read before seeking (default 20ms)
---vfs-write-wait duration Time to wait for in-sequence write before giving error (default 1s)
+ --vfs-read-wait duration Time to wait for in-sequence read before seeking (default 20ms)
+ --vfs-write-wait duration Time to wait for in-sequence write before giving error (default 1s)
When using VFS write caching (--vfs-cache-mode with
value writes or full), the global flag --transfers can be
set to adjust the number of parallel uploads of modified files from the
cache (the related global flag --checkers has no effect on
the VFS).
---transfers int Number of file transfers to run in parallel (default 4)
+ --transfers int Number of file transfers to run in parallel (default 4)
Symlinks
By default the VFS does not support symlinks. However this may be
enabled with either of the following flags:
---links Translate symlinks to/from regular files with a '.rclonelink' extension.
---vfs-links Translate symlinks to/from regular files with a '.rclonelink' extension for the VFS
+ --links Translate symlinks to/from regular files with a '.rclonelink' extension.
+ --vfs-links Translate symlinks to/from regular files with a '.rclonelink' extension for the VFS
As most cloud storage systems do not support symlinks directly,
rclone stores the symlink as a normal file with a special extension. So
a file which appears as a symlink link-to-file.txt would be
@@ -11871,7 +12342,7 @@ commands yet.
A limitation of the current implementation is that it expects the
caller to resolve sub-symlinks. For example given this directory
tree
-.
+.
├── dir
│ └── file.txt
└── linked-dir -> dir
@@ -11941,7 +12412,7 @@ an error, similar to how this is handled in
This flag allows you to manually set the statistics about the filing
system. It can be useful when those statistics cannot be read correctly
automatically.
---vfs-disk-space-total-size Manually set the total disk space size (example: 256G, default: -1)
+ --vfs-disk-space-total-size Manually set the total disk space size (example: 256G, default: -1)
Alternate report of used
bytes
Some backends, most notably S3, do not report the amount of bytes
@@ -11951,10 +12422,10 @@ used. If you need this information to be available when running
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.
+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.
VFS Metadata
If you use the --vfs-metadata-extension flag you can get
the VFS to expose files which contain the
--metadata flag.
For example, using rclone mount with
--metadata --vfs-metadata-extension .metadata we get
-$ ls -l /mnt/
-total 1048577
--rw-rw-r-- 1 user user 1073741824 Mar 3 16:03 1G
-
-$ cat /mnt/1G.metadata
-{
- "atime": "2025-03-04T17:34:22.317069787Z",
- "btime": "2025-03-03T16:03:37.708253808Z",
- "gid": "1000",
- "mode": "100664",
- "mtime": "2025-03-03T16:03:39.640238323Z",
- "uid": "1000"
-}
-
-$ ls -l /mnt/
-total 1048578
--rw-rw-r-- 1 user user 1073741824 Mar 3 16:03 1G
--rw-rw-r-- 1 user user 185 Mar 3 16:03 1G.metadata
+$ ls -l /mnt/
+total 1048577
+-rw-rw-r-- 1 user user 1073741824 Mar 3 16:03 1G
+
+$ cat /mnt/1G.metadata
+{
+ "atime": "2025-03-04T17:34:22.317069787Z",
+ "btime": "2025-03-03T16:03:37.708253808Z",
+ "gid": "1000",
+ "mode": "100664",
+ "mtime": "2025-03-03T16:03:39.640238323Z",
+ "uid": "1000"
+}
+
+$ ls -l /mnt/
+total 1048578
+-rw-rw-r-- 1 user user 1073741824 Mar 3 16:03 1G
+-rw-rw-r-- 1 user user 185 Mar 3 16:03 1G.metadata
If the file has no metadata it will be returned as {}
and if there is an error reading the metadata the error will be returned
as {"error":"error string"}.
@@ -12007,31 +12479,39 @@ backend on STDOUT in JSON format. This config will have any default
parameters for the backend added, but it won't use configuration from
environment variables or command line options - it is the job of the
proxy program to make a complete config.
-This config generated must have this extra parameter -
-_root - root to use for the backend
-And it may have this parameter - _obscure - comma
-separated strings for parameters to obscure
+This config generated must have this extra parameter
+
+_root - root to use for the backend
+
+And it may have this parameter
+
+_obscure - comma separated strings for parameters to
+obscure
+
If password authentication was used by the client, input to the proxy
process (on STDIN) would look similar to this:
-{
- "user": "me",
- "pass": "mypassword"
-}
+{
+ "user": "me",
+ "pass": "mypassword"
+}
If public-key authentication was used by the client, input to the
proxy process (on STDIN) would look similar to this:
-{
- "user": "me",
- "public_key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQDuwESFdAe14hVS6omeyX7edc...JQdf"
-}
+{
+ "user": "me",
+ "public_key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQDuwESFdAe14hVS6omeyX7edc...JQdf"
+}
And as an example return this on STDOUT
-{
- "type": "sftp",
- "_root": "",
- "_obscure": "pass",
- "user": "me",
- "pass": "mypassword",
- "host": "sftp.example.com"
-}
+{
+ "type": "sftp",
+ "_root": "",
+ "_obscure": "pass",
+ "user": "me",
+ "pass": "mypassword",
+ "host": "sftp.example.com"
+}
This would mean that an SFTP backend would be created on the fly for
the user and pass/public_key
returned in the output to the host given. Note that since
@@ -12099,7 +12579,7 @@ href="https://rclone.org/flags/">global flags page for global
options not listed here.
Filter Options
Flags for filtering directory listings
- --delete-excluded Delete files on dest excluded from sync
+ --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
--exclude-if-present stringArray Exclude directories if filename is present
@@ -12123,10 +12603,13 @@ options not listed here.
--min-age Duration Only transfer files older than this in s or suffix ms|s|m|h|d|w|M|y (default off)
--min-size SizeSuffix Only transfer files bigger than this in KiB or suffix B|K|M|G|T|P (default off)
See Also
+
+
- rclone serve
- Serve a remote over a protocol.
+
rclone serve webdav
Serve remote:path over WebDAV.
Synopsis
@@ -12151,25 +12634,33 @@ dialog. Windows requires SSL / HTTPS connection to be used with Basic.
If you try to connect via Add Network Location Wizard you will get the
following error: "The folder you entered does not appear to be valid.
Please choose another". However, you still can connect if you set the
-following registry key on a client machine: HKEY_LOCAL_MACHINEto 2. The
-BasicAuthLevel can be set to the following values: 0 - Basic
-authentication disabled 1 - Basic authentication enabled for SSL
-connections only 2 - Basic authentication enabled for SSL connections
-and for non-SSL connections If required, increase the
-FileSizeLimitInBytes to a higher value. Navigate to the Services
-interface, then restart the WebClient service.
+following registry key on a client machine:
+HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters\BasicAuthLevel
+to 2. The BasicAuthLevel can be set to the following values:
+0 - Basic authentication disabled
+1 - Basic authentication enabled for SSL connections only
+2 - Basic authentication enabled for SSL connections and for non-SSL connections
+If required, increase the FileSizeLimitInBytes to a higher value.
+Navigate to the Services interface, then restart the WebClient
+service.
Access Office applications
on WebDAV
-Navigate to following registry HKEY_CURRENT_USER[14.0/15.0/16.0]
-Create a new DWORD BasicAuthLevel with value 2. 0 - Basic authentication
-disabled 1 - Basic authentication enabled for SSL connections only 2 -
-Basic authentication enabled for SSL and for non-SSL connections
-https://learn.microsoft.com/en-us/office/troubleshoot/powerpoint/office-opens-blank-from-sharepoint
+Navigate to following registry
+HKEY_CURRENT_USER\Software\Microsoft\Office\[14.0/15.0/16.0]\Common\Internet
+Create a new DWORD BasicAuthLevel with value 2.
+0 - Basic authentication disabled
+1 - Basic authentication enabled for SSL connections only
+2 - Basic authentication enabled for SSL and for non-SSL connections
+https://learn.microsoft.com/en-us/office/troubleshoot/powerpoint/office-opens-blank-from-sharepoint
Serving over a unix socket
You can serve the webdav on a unix socket like this:
-rclone serve webdav --addr unix:///tmp/my.socket remote:path
+rclone serve webdav --addr unix:///tmp/my.socket remote:path
and connect to it like this using rclone and the webdav backend:
-rclone --webdav-unix-socket /tmp/my.socket --webdav-url http://localhost lsf :webdav:
+rclone --webdav-unix-socket /tmp/my.socket --webdav-url http://localhost lsf :webdav:
Note that there is no authentication on http protocol - this is
expected to be done by the permissions on the socket.
Server options
@@ -12220,13 +12711,16 @@ acceptable. Valid values are "tls1.0", "tls1.1", "tls1.2" and "tls1.3"
listen to all FDs passed by the service manager, if any (and ignore any
arguments passed by --addr).
This allows rclone to be a socket-activated service. It can be
-configured with .socket and .service unit files as described in
-https://www.freedesktop.org/software/systemd/man/latest/systemd.socket.html
+configured with .socket and .service unit files as described in https://www.freedesktop.org/software/systemd/man/latest/systemd.socket.html.
Socket activation can be tested ad-hoc with the
systemd-socket-activatecommand
- systemd-socket-activate -l 8000 -- rclone serve
+systemd-socket-activate -l 8000 -- rclone serve
This will socket-activate rclone on the first connection to port 8000
-over TCP. ### Template
+over TCP.
+Template
--template allows a user to specify a custom markup
template for HTTP and WebDAV serve functions. The server exports the
following markup to be used within the template to server pages:
@@ -12354,7 +12848,7 @@ the specified suffix.
-Authentication
+Authentication
By default this will serve files without needing a login.
You can either use an htpasswd file which can take lots of users, or
set a single username and password with the --user and
@@ -12373,14 +12867,15 @@ considered as the username.
file. This is in standard apache format and supports MD5, SHA1 and
BCrypt for basic authentication. Bcrypt is recommended.
To create an htpasswd file:
-touch htpasswd
-htpasswd -B htpasswd user
-htpasswd -B htpasswd anotherUser
+touch htpasswd
+htpasswd -B htpasswd user
+htpasswd -B htpasswd anotherUser
The password file can be updated while rclone is running.
Use --realm to set the authentication realm.
Use --salt to change the password hashing salt from the
default.
-VFS - Virtual File System
+VFS - Virtual File System
This command uses the VFS layer. This adapts the cloud storage
objects that rclone uses into something which looks much more like a
disk filing system.
@@ -12395,8 +12890,8 @@ about files and directories (but not the data) in memory.
long a directory should be considered up to date and not refreshed from
the backend. Changes made through the VFS will appear immediately or
invalidate the cache.
---dir-cache-time duration Time to cache directory entries for (default 5m0s)
---poll-interval duration Time to wait between polling for changes. Must be smaller than dir-cache-time. Only on supported remotes. Set to 0 to disable (default 1m0s)
+ --dir-cache-time duration Time to cache directory entries for (default 5m0s)
+ --poll-interval duration Time to wait between polling for changes. Must be smaller than dir-cache-time. Only on supported remotes. Set to 0 to disable (default 1m0s)
However, changes made directly on the cloud storage by the web
interface or a different copy of rclone will only be picked up once the
directory cache expires if the backend configured does not support
@@ -12405,12 +12900,15 @@ picked up within the polling interval.
You can send a SIGHUP signal to rclone for it to flush
all directory caches, regardless of how old they are. Assuming only one
rclone instance is running, you can reset the cache like this:
-kill -SIGHUP $(pidof rclone)
+kill -SIGHUP $(pidof rclone)
If you configure rclone with a remote control then
you can use rclone rc to flush the whole directory cache:
-rclone rc vfs/forget
+rclone rc vfs/forget
Or individual files or directories:
-rclone rc vfs/forget file=path/to/file dir=path/to/dir
+rclone rc vfs/forget file=path/to/file dir=path/to/dir
VFS File Buffering
The --buffer-size flag determines the amount of memory,
that will be used to buffer data in advance.
@@ -12431,13 +12929,13 @@ system. It can be disabled at the cost of some compatibility.
write simultaneously to a file. See below for more details.
Note that the VFS cache is separate from the cache backend and you
may find that you need one or the other or both.
---cache-dir string Directory rclone will use for caching.
---vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
---vfs-cache-max-age duration Max time since last access of objects in the cache (default 1h0m0s)
---vfs-cache-max-size SizeSuffix Max total size of objects in the cache (default off)
---vfs-cache-min-free-space SizeSuffix Target minimum free space on the disk containing the cache (default off)
---vfs-cache-poll-interval duration Interval to poll the cache for stale objects (default 1m0s)
---vfs-write-back duration Time to writeback files after last use when using cache (default 5s)
+ --cache-dir string Directory rclone will use for caching.
+ --vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
+ --vfs-cache-max-age duration Max time since last access of objects in the cache (default 1h0m0s)
+ --vfs-cache-max-size SizeSuffix Max total size of objects in the cache (default off)
+ --vfs-cache-min-free-space SizeSuffix Target minimum free space on the disk containing the cache (default off)
+ --vfs-cache-poll-interval duration Interval to poll the cache for stale objects (default 1m0s)
+ --vfs-write-back duration Time to writeback files after last use when using cache (default 5s)
If run with -vv rclone will print the location of the
file cache. The files are stored in the user cache file area which is OS
dependent but can be controlled with --cache-dir or setting
@@ -12561,9 +13059,9 @@ specified. This can reduce the used download quota for some remotes by
requesting only chunks from the remote that are actually read, at the
cost of an increased number of requests.
These flags control the chunking:
---vfs-read-chunk-size SizeSuffix Read the source objects in chunks (default 128M)
---vfs-read-chunk-size-limit SizeSuffix Max chunk doubling size (default off)
---vfs-read-chunk-streams int The number of parallel streams to read at once
+ --vfs-read-chunk-size SizeSuffix Read the source objects in chunks (default 128M)
+ --vfs-read-chunk-size-limit SizeSuffix Max chunk doubling size (default off)
+ --vfs-read-chunk-streams int The number of parallel streams to read at once
The chunking behaves differently depending on the
--vfs-read-chunk-streams parameter.
chunked reading feature.
--no-modtime flag (or use --use-server-modtime
for a slightly different effect) as each read of the modification time
takes a transaction.
---no-checksum Don't compare checksums on up/download.
---no-modtime Don't read/write the modification time (can speed things up).
---no-seek Don't allow seeking in files.
---read-only Only allow read-only access.
+ --no-checksum Don't compare checksums on up/download.
+ --no-modtime Don't read/write the modification time (can speed things up).
+ --no-seek Don't allow seeking in files.
+ --read-only Only allow read-only access.
Sometimes rclone is delivered reads or writes out of order. Rather
than seeking rclone will wait a short time for the in sequence read or
write to come in. These flags only come into effect when not using an on
disk cache file.
---vfs-read-wait duration Time to wait for in-sequence read before seeking (default 20ms)
---vfs-write-wait duration Time to wait for in-sequence write before giving error (default 1s)
+ --vfs-read-wait duration Time to wait for in-sequence read before seeking (default 20ms)
+ --vfs-write-wait duration Time to wait for in-sequence write before giving error (default 1s)
When using VFS write caching (--vfs-cache-mode with
value writes or full), the global flag --transfers can be
set to adjust the number of parallel uploads of modified files from the
cache (the related global flag --checkers has no effect on
the VFS).
---transfers int Number of file transfers to run in parallel (default 4)
+ --transfers int Number of file transfers to run in parallel (default 4)
Symlinks
By default the VFS does not support symlinks. However this may be
enabled with either of the following flags:
---links Translate symlinks to/from regular files with a '.rclonelink' extension.
---vfs-links Translate symlinks to/from regular files with a '.rclonelink' extension for the VFS
+ --links Translate symlinks to/from regular files with a '.rclonelink' extension.
+ --vfs-links Translate symlinks to/from regular files with a '.rclonelink' extension for the VFS
As most cloud storage systems do not support symlinks directly,
rclone stores the symlink as a normal file with a special extension. So
a file which appears as a symlink link-to-file.txt would be
@@ -12654,7 +13152,7 @@ commands yet.
A limitation of the current implementation is that it expects the
caller to resolve sub-symlinks. For example given this directory
tree
-.
+.
├── dir
│ └── file.txt
└── linked-dir -> dir
@@ -12724,7 +13222,7 @@ an error, similar to how this is handled in
This flag allows you to manually set the statistics about the filing
system. It can be useful when those statistics cannot be read correctly
automatically.
---vfs-disk-space-total-size Manually set the total disk space size (example: 256G, default: -1)
+ --vfs-disk-space-total-size Manually set the total disk space size (example: 256G, default: -1)
Alternate report of used
bytes
Some backends, most notably S3, do not report the amount of bytes
@@ -12734,10 +13232,10 @@ used. If you need this information to be available when running
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.
+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.
VFS Metadata
If you use the --vfs-metadata-extension flag you can get
the VFS to expose files which contain the
--metadata flag.
For example, using rclone mount with
--metadata --vfs-metadata-extension .metadata we get
-$ ls -l /mnt/
-total 1048577
--rw-rw-r-- 1 user user 1073741824 Mar 3 16:03 1G
-
-$ cat /mnt/1G.metadata
-{
- "atime": "2025-03-04T17:34:22.317069787Z",
- "btime": "2025-03-03T16:03:37.708253808Z",
- "gid": "1000",
- "mode": "100664",
- "mtime": "2025-03-03T16:03:39.640238323Z",
- "uid": "1000"
-}
-
-$ ls -l /mnt/
-total 1048578
--rw-rw-r-- 1 user user 1073741824 Mar 3 16:03 1G
--rw-rw-r-- 1 user user 185 Mar 3 16:03 1G.metadata
+$ ls -l /mnt/
+total 1048577
+-rw-rw-r-- 1 user user 1073741824 Mar 3 16:03 1G
+
+$ cat /mnt/1G.metadata
+{
+ "atime": "2025-03-04T17:34:22.317069787Z",
+ "btime": "2025-03-03T16:03:37.708253808Z",
+ "gid": "1000",
+ "mode": "100664",
+ "mtime": "2025-03-03T16:03:39.640238323Z",
+ "uid": "1000"
+}
+
+$ ls -l /mnt/
+total 1048578
+-rw-rw-r-- 1 user user 1073741824 Mar 3 16:03 1G
+-rw-rw-r-- 1 user user 185 Mar 3 16:03 1G.metadata
If the file has no metadata it will be returned as {}
and if there is an error reading the metadata the error will be returned
as {"error":"error string"}.
@@ -12790,31 +13289,39 @@ backend on STDOUT in JSON format. This config will have any default
parameters for the backend added, but it won't use configuration from
environment variables or command line options - it is the job of the
proxy program to make a complete config.
-This config generated must have this extra parameter -
-_root - root to use for the backend
-And it may have this parameter - _obscure - comma
-separated strings for parameters to obscure
+This config generated must have this extra parameter
+
+_root - root to use for the backend
+
+And it may have this parameter
+
+_obscure - comma separated strings for parameters to
+obscure
+
If password authentication was used by the client, input to the proxy
process (on STDIN) would look similar to this:
-{
- "user": "me",
- "pass": "mypassword"
-}
+{
+ "user": "me",
+ "pass": "mypassword"
+}
If public-key authentication was used by the client, input to the
proxy process (on STDIN) would look similar to this:
-{
- "user": "me",
- "public_key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQDuwESFdAe14hVS6omeyX7edc...JQdf"
-}
+{
+ "user": "me",
+ "public_key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQDuwESFdAe14hVS6omeyX7edc...JQdf"
+}
And as an example return this on STDOUT
-{
- "type": "sftp",
- "_root": "",
- "_obscure": "pass",
- "user": "me",
- "pass": "mypassword",
- "host": "sftp.example.com"
-}
+{
+ "type": "sftp",
+ "_root": "",
+ "_obscure": "pass",
+ "user": "me",
+ "pass": "mypassword",
+ "host": "sftp.example.com"
+}
This would mean that an SFTP backend would be created on the fly for
the user and pass/public_key
returned in the output to the host given. Note that since
@@ -12894,7 +13401,7 @@ href="https://rclone.org/flags/">global flags page for global
options not listed here.
Filter Options
Flags for filtering directory listings
- --delete-excluded Delete files on dest excluded from sync
+ --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
--exclude-if-present stringArray Exclude directories if filename is present
@@ -12918,10 +13425,13 @@ options not listed here.
--min-age Duration Only transfer files older than this in s or suffix ms|s|m|h|d|w|M|y (default off)
--min-size SizeSuffix Only transfer files bigger than this in KiB or suffix B|K|M|G|T|P (default off)
See Also
+
+
- rclone serve
- Serve a remote over a protocol.
+
rclone settier
Changes storage class/tier of objects in remote.
Synopsis
@@ -12934,28 +13444,35 @@ 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
-rclone settier Cool remote:path/file
+rclone settier Cool remote:path/file
Or use rclone filters to set tier on only specific files
-rclone --include "*.txt" settier Hot remote:path/dir
+rclone --include "*.txt" settier Hot remote:path/dir
Or just provide remote directory and all files in directory will be
tiered
-rclone settier tier remote:path/dir
+rclone settier tier remote:path/dir
rclone settier tier remote:path [flags]
Options
-h, --help help for settier
See the global flags page for
global options not listed here.
See Also
+
+
- rclone - Show help
for rclone commands, flags and backends.
+
rclone test
Run a test command
Synopsis
Rclone test is used to run test commands.
Select which test command you want with the subcommand, eg
-rclone test memory remote:
+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
@@ -12965,6 +13482,8 @@ strange things so reading their documentation first is recommended.
See the global flags page for
global options not listed here.
See Also
+
+
- rclone - Show help
for rclone commands, flags and backends.
@@ -12985,6 +13504,7 @@ test makefiles - Make a random file hierarchy in a directory
test memory - Load all the objects at remote:path into memory and
report memory stats.
+
rclone test changenotify
Log any change notify requests for the remote passed in.
rclone test changenotify remote: [flags]
@@ -12994,10 +13514,13 @@ report memory stats.
See the global flags page for
global options not listed here.
See Also
+
+
- rclone test -
Run a test command
+
rclone test histogram
Makes a histogram of file name characters.
Synopsis
@@ -13011,10 +13534,13 @@ for the rclone developers when developing filename compression.
See the global flags page for
global options not listed here.
See Also
+
+
- rclone test -
Run a test command
+
rclone test info
Discovers file name or other limitations for paths.
Synopsis
@@ -13023,7 +13549,7 @@ 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
+hazards - use with care!
rclone test info [remote:path]+ [flags]
Options
--all Run all tests
@@ -13039,10 +13565,13 @@ hazards - use with care
See the global flags page for
global options not listed here.
See Also
+
+
- rclone test -
Run a test command
+
rclone test makefile
Make files with random contents of the size given
rclone test makefile <size> [<file>]+ [flags]
@@ -13057,10 +13586,13 @@ Run a test command
See the global flags page for
global options not listed here.
See Also
+
+
- rclone test -
Run a test command
+
rclone test makefiles
Make a random file hierarchy in a directory
rclone test makefiles <dir> [flags]
@@ -13083,10 +13615,13 @@ Run a test command
See the global flags page for
global options not listed here.
See Also
+
+
- rclone test -
Run a test command
+
rclone test memory
Load all the objects at remote:path into memory and report memory
stats.
@@ -13096,10 +13631,13 @@ stats.
See the global flags page for
global options not listed here.
See Also
+
+
- rclone test -
Run a test command
+
rclone touch
Create new file or change file modification time.
Synopsis
@@ -13135,12 +13673,12 @@ href="https://rclone.org/flags/">global flags page for global
options not listed here.
Important Options
Important flags useful for most commands
- -n, --dry-run Do a trial run with no permanent changes
+ -n, --dry-run Do a trial run with no permanent changes
-i, --interactive Enable interactive mode
-v, --verbose count Print lots more stuff (repeat for more)
Filter Options
Flags for filtering directory listings
- --delete-excluded Delete files on dest excluded from sync
+ --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
--exclude-if-present stringArray Exclude directories if filename is present
@@ -13165,20 +13703,23 @@ options not listed here.
--min-size SizeSuffix Only transfer files bigger than this in KiB or suffix B|K|M|G|T|P (default off)
Listing Options
Flags for listing directories
- --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
+ --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
--fast-list Use recursive list if available; uses more memory but fewer transactions
See Also
+
+
- rclone - Show help
for rclone commands, flags and backends.
+
rclone tree
List the contents of the remote in a tree like fashion.
Synopsis
Lists the contents of a remote in a similar way to the unix tree
command.
For example
-$ rclone tree remote:path
+$ rclone tree remote:path
/
├── file1
├── file2
@@ -13223,7 +13764,7 @@ href="https://rclone.org/flags/">global flags page for global
options not listed here.
Filter Options
Flags for filtering directory listings
- --delete-excluded Delete files on dest excluded from sync
+ --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
--exclude-if-present stringArray Exclude directories if filename is present
@@ -13248,13 +13789,16 @@ options not listed here.
--min-size SizeSuffix Only transfer files bigger than this in KiB or suffix B|K|M|G|T|P (default off)
Listing Options
Flags for listing directories
- --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
+ --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
--fast-list Use recursive list if available; uses more memory but fewer transactions
See Also
+
+
- rclone - Show help
for rclone commands, flags and backends.
+
Copying single files
rclone normally syncs or copies directories. However, if the source
remote points to a file, rclone will just copy that file. The
@@ -13264,16 +13808,16 @@ error
if it isn't.
For example, suppose you have a remote with a file in called
test.jpg, then you could copy just that file like this
-rclone copy remote:test.jpg /tmp/download
+rclone copy remote:test.jpg /tmp/download
The file test.jpg will be placed inside
/tmp/download.
This is equivalent to specifying
-rclone copy --files-from /tmp/files remote: /tmp/download
+rclone copy --files-from /tmp/files remote: /tmp/download
Where /tmp/files contains the single line
-test.jpg
+test.jpg
It is recommended to use copy when copying individual
files, not sync. They have pretty much the same effect but
copy will use a lot less memory.
@@ -13307,21 +13851,21 @@ leading / will refer to the root.
backend should be provided on the command line (or in environment
variables).
Here are some examples:
-rclone lsd --http-url https://pub.rclone.org :http:
+rclone lsd --http-url https://pub.rclone.org :http:
To list all the directories in the root of
https://pub.rclone.org/.
-rclone lsf --http-url https://example.com :http:path/to/dir
+rclone lsf --http-url https://example.com :http:path/to/dir
To list files and directories in
https://example.com/path/to/dir/
-rclone copy --http-url https://example.com :http:path/to/dir /tmp/dir
+rclone copy --http-url https://example.com :http:path/to/dir /tmp/dir
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
+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.
@@ -13330,59 +13874,59 @@ using sftp.
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
+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"
+rclone lsf "gdrive,shared_with_me:path/to/dir"
The major advantage to using the connection string style syntax is
that it only applies to 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:
+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:
+rclone copy "gdrive,shared_with_me:shared-file.txt" gdrive:
Note that the connection string only affects the options of the
immediate backend. If for example gdriveCrypt is a crypt based on
gdrive, then the following command will not work as
intended, because shared_with_me is ignored by the crypt
backend:
-rclone copy "gdriveCrypt,shared_with_me:shared-file.txt" gdriveCrypt:
+rclone copy "gdriveCrypt,shared_with_me:shared-file.txt" gdriveCrypt:
The connection strings have the following syntax
-remote,parameter=value,parameter2=value2:path/to/dir
-:backend,parameter=value,parameter2=value2:path/to/dir
+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
+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
+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:
+rclone lsd :s3,env_auth:
Which is equivalent to
-rclone lsd :s3,env_auth=true:
+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.
@@ -13390,34 +13934,34 @@ shell interpreting any special characters within them.
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
+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
+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:
+rclone -vv lsf --s3-chunk-size 20M s3:
Has the log message
-DEBUG : s3: detected overridden config - adding "{Srj1p}" suffix to name
+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:
+rclone -vv lsf :s3,env_auth:
Will get their own names
-DEBUG : :s3: detected overridden config - adding "{YTu53}" suffix to name
+DEBUG : :s3: detected overridden config - adding "{YTu53}" suffix to name
Valid remote names
Remote names are case sensitive, and must adhere to the following
rules:
@@ -13460,11 +14004,11 @@ infrastructure without a proper certificate. You could supply the
--no-check-certificate flag to rclone, but this will affect
all the remotes. To make it just affect this remote you
use an override. You could put this in the config file:
-[remote]
-type = XXX
-...
-override.no_check_certificate = true
+[remote]
+type = XXX
+...
+override.no_check_certificate = true
or use it in the connection string
remote,override.no_check_certificate=true: (or just
remote,override.no_check_certificate:).
@@ -13508,11 +14052,11 @@ as an override. For example, say you have a remote where
you would always like to use the --checksum flag. You could
supply the --checksum flag to rclone on every command line,
but instead you could put this in the config file:
-[remote]
-type = XXX
-...
-global.checksum = true
+[remote]
+type = XXX
+...
+global.checksum = true
or use it in the connection string
remote,global.checksum=true: (or just
remote,global.checksum:). This is equivalent to using the
@@ -13538,25 +14082,25 @@ rules
*, ?, $, ',
", etc.) then you must quote them. Use single quotes
' by default.
-rclone copy 'Important files?' remote:backup
+rclone copy 'Important files?' remote:backup
If you want to send a ' you will need to use
", e.g.
-rclone copy "O'Reilly Reviews" remote:backup
+rclone copy "O'Reilly Reviews" remote:backup
The rules for quoting metacharacters are complicated and if you want
the full details you'll have to consult the manual page for your
shell.
Windows
If your names have spaces in you need to put them in ",
e.g.
-rclone copy "E:\folder name\folder name\folder name" remote:backup
+rclone copy "E:\folder name\folder name\folder name" remote:backup
If you are using the root directory on its own then don't quote it
(see #464 for
why), e.g.
-rclone copy E:\ remote:backup
+rclone copy E:\ remote:backup
Copying files or
directories with : in the names
rclone uses : to mark a remote name. This is, however, a
@@ -13567,11 +14111,11 @@ path starting with a /, or use ./ as a current
directory prefix.
So to sync a directory called sync:me to a remote called
remote: use
-rclone sync --interactive ./sync:me remote:path
+rclone sync --interactive ./sync:me remote:path
or
-rclone sync --interactive /full/path/to/sync:me remote:path
+rclone sync --interactive /full/path/to/sync:me remote:path
Server-side copy
Most remotes (but not all - see the overview)
@@ -13580,8 +14124,8 @@ support server-side copy.
won't download all the files and re-upload them; it will instruct the
server to copy them in place.
Eg
-rclone copy s3:oldbucket s3:newbucket
+rclone copy s3:oldbucket s3:newbucket
Will copy the contents of oldbucket to
newbucket without downloading and re-uploading.
Remotes which don't support server-side copy will
@@ -13596,9 +14140,9 @@ download and re-upload.
same.
This can be used when scripting to make aged backups efficiently,
e.g.
-rclone sync --interactive remote:current-backup remote:previous-backup
-rclone sync --interactive /path/to/files remote:current-backup
+rclone sync --interactive remote:current-backup remote:previous-backup
+rclone sync --interactive /path/to/files remote:current-backup
Metadata support
Metadata is data about a file (or directory) which isn't the contents
of the file (or directory). Normally rclone only preserves the
@@ -13877,15 +14421,17 @@ use the same remote as the destination of the sync. The backup directory
must not overlap the destination directory without it being excluded by
a filter rule.
For example
-rclone sync --interactive /path/to/local remote:current --backup-dir remote:old
+rclone sync --interactive /path/to/local remote:current --backup-dir remote:old
will sync /path/to/local to remote:current,
but for any files which would have been updated or deleted will be
stored in remote:old.
If running rclone from a script you might want to use today's date as
the directory name passed to --backup-dir to store the old
files, or you might want to pass --suffix with today's
-date.
+date. This can be done with --suffix $(date +%F) in bash,
+and --suffix $(Get-Date -Format 'yyyy-MM-dd') in
+PowerShell.
See --compare-dest and --copy-dest.
--bind string
Local address to bind to for outgoing connections. This can be an
@@ -13897,8 +14443,8 @@ addresses and --bind ::0 to force rclone to use IPv6
addresses.
--bwlimit BwTimetable
This option controls the bandwidth limit. For example
---bwlimit 10M
+--bwlimit 10M
would mean limit the upload and download bandwidth to 10 MiB/s.
NB this is bytes per second not
bits per second. To use a single limit, specify the
@@ -13906,13 +14452,13 @@ desired bandwidth in KiB/s, or use a suffix B|K|M|G|T|P. The default is
0 which means to not limit bandwidth.
The upload and download bandwidth can be specified separately, as
--bwlimit UP:DOWN, so
---bwlimit 10M:100k
+--bwlimit 10M:100k
would mean limit the upload bandwidth to 10 MiB/s and the download
bandwidth to 100 KiB/s. Either limit can be "off" meaning no limit, so
to just limit the upload bandwidth you would use
---bwlimit 10M:off
+--bwlimit 10M:off
this would limit the upload bandwidth to 10 MiB/s but the download
bandwidth would be unlimited.
When specified as above the bandwidth limits last for the duration of
@@ -13954,11 +14500,11 @@ Saturday it will be set to 1 MiB/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"
+--bwlimit "Mon-00:00,512 12:00,1M Sun-20:00,off"
Is equivalent to this:
---bwlimit "Mon-00:00,512Mon-12:00,1M Tue-12:00,1M Wed-12:00,1M Thu-12:00,1M Fri-12:00,1M Sat-12:00,1M Sun-12:00,1M Sun-20:00,off"
+--bwlimit "Mon-00:00,512Mon-12:00,1M Tue-12:00,1M Wed-12:00,1M Thu-12:00,1M Fri-12:00,1M Sat-12:00,1M Sun-12:00,1M Sun-20:00,off"
Bandwidth limit apply to the data transfer for all backends. For most
backends the directory listing bandwidth is also included (exceptions
being the non HTTP backends, ftp, sftp and
@@ -13975,19 +14521,19 @@ to remove the limitations of a long running rclone transfer and to
restore it back to the value specified with --bwlimit
quickly when needed. Assuming there is only one rclone instance running,
you can toggle the limiter like this:
-kill -SIGUSR2 $(pidof rclone)
+kill -SIGUSR2 $(pidof rclone)
If you configure rclone with a remote control then
you can use change the bwlimit dynamically:
-rclone rc core/bwlimit rate=1M
+rclone rc core/bwlimit rate=1M
--bwlimit-file BwTimetable
This option controls per file bandwidth limit. For the options see
the --bwlimit flag.
For example use this to allow no transfers to be faster than 1
MiB/s
---bwlimit-file 1M
+--bwlimit-file 1M
This can be used in conjunction with --bwlimit.
Note that if a schedule is provided the file will use the schedule in
effect at the start of the transfer.
@@ -14180,11 +14726,11 @@ 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
+[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
@@ -14255,15 +14801,15 @@ the default time to the time rclone started up.
--disable string
This disables a comma separated list of optional features. For
example to disable server-side move and server-side copy use:
---disable move,copy
+--disable move,copy
The features can be put in any case.
To see a list of which features can be disabled use:
---disable help
+--disable help
The features a remote has can be seen in JSON format with:
-rclone backend features remote:
+rclone backend features remote:
See the overview features and optional
@@ -14297,8 +14843,8 @@ 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
+rclone copy --dscp LE from:/from to:/to
would make the priority lower than usual internet flows.
This option has no effect on Windows (see golang/go#42728).
@@ -14379,21 +14925,21 @@ downloads use --header-download.
supported by --header-upload and
--header-download so may be used as a workaround for those
with care.
-rclone ls remote:test --header "X-Rclone: Foo" --header "X-LetMeIn: Yes"
+rclone ls remote:test --header "X-Rclone: Foo" --header "X-LetMeIn: Yes"
--header-download stringArray
Add an HTTP header for all download transactions. The flag can be
repeated to add multiple headers.
-rclone sync --interactive s3:test/src ~/dst --header-download "X-Amz-Meta-Test: Foo" --header-download "X-Amz-Meta-Test2: Bar"
+rclone sync --interactive s3:test/src ~/dst --header-download "X-Amz-Meta-Test: Foo" --header-download "X-Amz-Meta-Test2: Bar"
See GitHub issue #59 for currently
supported backends.
--header-upload stringArray
Add an HTTP header for all upload transactions. The flag can be
repeated to add multiple headers.
-rclone sync --interactive ~/src s3:test/dst --header-upload "Content-Disposition: attachment; filename='cool.html'" --header-upload "X-Amz-Meta-Test: FooBar"
+rclone sync --interactive ~/src s3:test/dst --header-upload "Content-Disposition: attachment; filename='cool.html'" --header-upload "X-Amz-Meta-Test: FooBar"
See GitHub issue #59 for currently
supported backends.
@@ -14543,15 +15089,15 @@ confirmation before destructive operations.
It is recommended that you use this flag while
learning rclone especially with rclone sync.
For example
-$ rclone delete --interactive /tmp/dir
-rclone: delete "important-file.txt"?
-y) Yes, this is OK (default)
-n) No, skip this
-s) Skip all delete operations with no more questions
-!) Do all delete operations with no more questions
-q) Exit rclone now.
-y/n/s/!/q> n
+$ rclone delete --interactive /tmp/dir
+rclone: delete "important-file.txt"?
+y) Yes, this is OK (default)
+n) No, skip this
+s) Skip all delete operations with no more questions
+!) Do all delete operations with no more questions
+q) Exit rclone now.
+y/n/s/!/q> n
The options mean
y: Yes, this operation should go
@@ -14617,8 +15163,8 @@ ignored.
If this option is not set, then the other log rotation options will
be ignored.
For example if the following flags are in use
-rclone --log-file rclone.log --log-file-max-size 1M --log-file-max-backups 3
+rclone --log-file rclone.log --log-file-max-size 1M --log-file-max-backups 3
Then this will create log files which look like this
$ ls -l
-rw------- 1 user user 1048491 Apr 11 17:15 rclone-2025-04-11T17-15-29.998.log
@@ -14699,8 +15245,8 @@ administrator to create the registry key in advance.
must be greater (more severe) than or equal to the
--log-level. For example to log DEBUG to a log file but
ERRORs to the event log you would use
---log-file rclone.log --log-level DEBUG --windows-event-log ERROR
+--log-file rclone.log --log-level DEBUG --windows-event-log ERROR
This option is only supported Windows platforms.
--use-json-log
This switches the log format to JSON. The log messages are then
@@ -14714,49 +15260,49 @@ complete log file is not strictly valid JSON and needs a parser that can
handle it.
The JSON logs will be printed on a single line, but are shown
expanded here for clarity.
-{
- "time": "2025-05-13T17:30:51.036237518+01:00",
- "level": "debug",
- "msg": "4 go routines active\n",
- "source": "cmd/cmd.go:298"
-}
+{
+ "time": "2025-05-13T17:30:51.036237518+01:00",
+ "level": "debug",
+ "msg": "4 go routines active\n",
+ "source": "cmd/cmd.go:298"
+}
Completed data transfer logs will have extra size
information. Logs which are about a particular object will have
object and objectType fields also.
-{
- "time": "2025-05-13T17:38:05.540846352+01:00",
- "level": "info",
- "msg": "Copied (new) to: file2.txt",
- "size": 6,
- "object": "file.txt",
- "objectType": "*local.Object",
- "source": "operations/copy.go:368"
-}
+{
+ "time": "2025-05-13T17:38:05.540846352+01:00",
+ "level": "info",
+ "msg": "Copied (new) to: file2.txt",
+ "size": 6,
+ "object": "file.txt",
+ "objectType": "*local.Object",
+ "source": "operations/copy.go:368"
+}
Stats logs will contain a stats field which is the same
as returned from the rc call core/stats.
-{
- "time": "2025-05-13T17:38:05.540912847+01:00",
- "level": "info",
- "msg": "...text version of the stats...",
- "stats": {
- "bytes": 6,
- "checks": 0,
- "deletedDirs": 0,
- "deletes": 0,
- "elapsedTime": 0.000904825,
- ...truncated for clarity...
- "totalBytes": 6,
- "totalChecks": 0,
- "totalTransfers": 1,
- "transferTime": 0.000882794,
- "transfers": 1
- },
- "source": "accounting/stats.go:569"
-}
+{
+ "time": "2025-05-13T17:38:05.540912847+01:00",
+ "level": "info",
+ "msg": "...text version of the stats...",
+ "stats": {
+ "bytes": 6,
+ "checks": 0,
+ "deletedDirs": 0,
+ "deletes": 0,
+ "elapsedTime": 0.000904825,
+ ...truncated for clarity...
+ "totalBytes": 6,
+ "totalChecks": 0,
+ "totalTransfers": 1,
+ "transferTime": 0.000882794,
+ "transfers": 1
+ },
+ "source": "accounting/stats.go:569"
+}
--low-level-retries int
This controls the number of low level retries rclone does.
A low level retry is used to retry a failing operation - typically
@@ -14882,10 +15428,10 @@ enclose it in ", if you want a literal " in an
argument then enclose the argument in " and double the
". See CSV
encoding for more info.
---metadata-mapper "python bin/test_metadata_mapper.py"
---metadata-mapper 'python bin/test_metadata_mapper.py "argument with a space"'
---metadata-mapper 'python bin/test_metadata_mapper.py "argument with ""two"" quotes"'
+--metadata-mapper "python bin/test_metadata_mapper.py"
+--metadata-mapper 'python bin/test_metadata_mapper.py "argument with a space"'
+--metadata-mapper 'python bin/test_metadata_mapper.py "argument with ""two"" quotes"'
This uses a simple JSON based protocol with input on STDIN and output
on STDOUT. This will be called for every file and directory copied and
may be called concurrently.
@@ -14912,63 +15458,63 @@ known.
Metadata is the backend specific metadata as described
in the backend docs.
-{
- "SrcFs": "gdrive:",
- "SrcFsType": "drive",
- "DstFs": "newdrive:user",
- "DstFsType": "onedrive",
- "Remote": "test.txt",
- "Size": 6,
- "MimeType": "text/plain; charset=utf-8",
- "ModTime": "2022-10-11T17:53:10.286745272+01:00",
- "IsDir": false,
- "ID": "xyz",
- "Metadata": {
- "btime": "2022-10-11T16:53:11Z",
- "content-type": "text/plain; charset=utf-8",
- "mtime": "2022-10-11T17:53:10.286745272+01:00",
- "owner": "user1@domain1.com",
- "permissions": "...",
- "description": "my nice file",
- "starred": "false"
- }
-}
+{
+ "SrcFs": "gdrive:",
+ "SrcFsType": "drive",
+ "DstFs": "newdrive:user",
+ "DstFsType": "onedrive",
+ "Remote": "test.txt",
+ "Size": 6,
+ "MimeType": "text/plain; charset=utf-8",
+ "ModTime": "2022-10-11T17:53:10.286745272+01:00",
+ "IsDir": false,
+ "ID": "xyz",
+ "Metadata": {
+ "btime": "2022-10-11T16:53:11Z",
+ "content-type": "text/plain; charset=utf-8",
+ "mtime": "2022-10-11T17:53:10.286745272+01:00",
+ "owner": "user1@domain1.com",
+ "permissions": "...",
+ "description": "my nice file",
+ "starred": "false"
+ }
+}
The program should then modify the input as desired and send it to
STDOUT. The returned Metadata field will be used in its
entirety for the destination object. Any other fields will be ignored.
Note in this example we translate user names and permissions and add
something to the description:
-{
- "Metadata": {
- "btime": "2022-10-11T16:53:11Z",
- "content-type": "text/plain; charset=utf-8",
- "mtime": "2022-10-11T17:53:10.286745272+01:00",
- "owner": "user1@domain2.com",
- "permissions": "...",
- "description": "my nice file [migrated from domain1]",
- "starred": "false"
- }
-}
+{
+ "Metadata": {
+ "btime": "2022-10-11T16:53:11Z",
+ "content-type": "text/plain; charset=utf-8",
+ "mtime": "2022-10-11T17:53:10.286745272+01:00",
+ "owner": "user1@domain2.com",
+ "permissions": "...",
+ "description": "my nice file [migrated from domain1]",
+ "starred": "false"
+ }
+}
Metadata can be removed here too.
An example python program might look something like this to implement
the above transformations.
-import sys, json
-
-i = json.load(sys.stdin)
-metadata = i["Metadata"]
-# Add tag to description
-if "description" in metadata:
- metadata["description"] += " [migrated from domain1]"
-else:
- metadata["description"] = "[migrated from domain1]"
-# Modify owner
-if "owner" in metadata:
- metadata["owner"] = metadata["owner"].replace("domain1.com", "domain2.com")
-o = { "Metadata": metadata }
-json.dump(o, sys.stdout, indent="\t")
+import sys, json
+
+i = json.load(sys.stdin)
+metadata = i["Metadata"]
+# Add tag to description
+if "description" in metadata:
+ metadata["description"] += " [migrated from domain1]"
+else:
+ metadata["description"] = "[migrated from domain1]"
+# Modify owner
+if "owner" in metadata:
+ metadata["owner"] = metadata["owner"].replace("domain1.com", "domain2.com")
+o = { "Metadata": metadata }
+json.dump(o, sys.stdout, indent="\t")
You can find this example (slightly expanded) in the rclone source
code at bin/test_metadata_mapper.py.
@@ -15225,10 +15771,10 @@ enclose the argument in " and double the ".
See CSV encoding for more
info.
Eg
---password-command "echo hello"
---password-command 'echo "hello with space"'
---password-command 'echo "hello with ""quotes"" and space"'
+--password-command "echo hello"
+--password-command 'echo "hello with space"'
+--password-command 'echo "hello with ""quotes"" and space"'
Note that when changing the configuration password the environment
variable RCLONE_PASSWORD_CHANGE=1 will be set. This can be
used to distinguish initial decryption of the config file from the new
@@ -15387,8 +15933,8 @@ use the same remote as the destination of the sync.
or with --backup-dir. See --backup-dir for
more info.
For example
-rclone copy --interactive /path/to/local/file remote:current --suffix .bak
+rclone copy --interactive /path/to/local/file remote:current --suffix .bak
will copy /path/to/local to remote:current,
but for any files which would have been updated or deleted have .bak
added.
@@ -15396,8 +15942,8 @@ added.
without --backup-dir then it is recommended to put a filter
rule in excluding the suffix otherwise the sync will delete
the backup files.
-rclone sync --interactive /path/to/local/file remote:current --suffix .bak --exclude "*.bak"
+rclone sync --interactive /path/to/local/file remote:current --suffix .bak --exclude "*.bak"
--suffix-keep-extension
When using --suffix, setting this causes rclone put the
SUFFIX before the extension of the files that it backs up rather than
@@ -15723,34 +16269,34 @@ 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
-Current remotes:
-
-e) Edit existing remote
-n) New remote
-d) Delete remote
-s) Set configuration password
-q) Quit config
-e/n/d/s/q>
+$ rclone config
+Current remotes:
+
+e) Edit existing remote
+n) New remote
+d) Delete remote
+s) Set configuration password
+q) Quit config
+e/n/d/s/q>
Go into s, Set configuration password:
-e/n/d/s/q> s
-Your configuration is not encrypted.
-If you add a password, you will protect your login information to cloud services.
-a) Add Password
-q) Quit to main menu
-a/q> a
-Enter NEW configuration password:
-password:
-Confirm NEW password:
-password:
-Password set
-Your configuration is encrypted.
-c) Change Password
-u) Unencrypt configuration
-q) Quit to main menu
-c/u/q>
+e/n/d/s/q> s
+Your configuration is not encrypted.
+If you add a password, you will protect your login information to cloud services.
+a) Add Password
+q) Quit to main menu
+a/q> a
+Enter NEW configuration password:
+password:
+Confirm NEW password:
+password:
+Password set
+Your configuration is encrypted.
+c) Change Password
+u) Unencrypt configuration
+q) Quit to main menu
+c/u/q>
Your configuration is now encrypted, and every time you start rclone
you will have to supply the password. See below for details. In the same
menu, you can change the password or completely remove encryption from
@@ -15784,11 +16330,11 @@ password, in which case it will be used for decrypting the
configuration.
You can set this for a session from a script. For unix like systems
save this to a file called set-rclone-password:
-#!/bin/echo Source this file don't run it
-
-read -s RCLONE_CONFIG_PASS
-export RCLONE_CONFIG_PASS
+#!/bin/echo Source this file don't run it
+
+read -s RCLONE_CONFIG_PASS
+export RCLONE_CONFIG_PASS
Then source the file when you want to use it. From the shell you
would do source set-rclone-password. It will then ask you
for the password and set it in the environment variable.
@@ -15801,8 +16347,8 @@ command line argument or via the RCLONE_PASSWORD_COMMAND
environment variable.
One useful example of this is using the passwordstore
application to retrieve the password:
-export RCLONE_PASSWORD_COMMAND="pass rclone/config"
+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
@@ -15841,12 +16387,12 @@ at rest or transfer. Detailed instructions for popular OSes:
Mac
Generate and store a password
-security add-generic-password -a rclone -s config -w $(openssl rand -base64 40)
+security add-generic-password -a rclone -s config -w $(openssl rand -base64 40)
Add the retrieval instruction to your .zprofile /
.profile
-export RCLONE_PASSWORD_COMMAND="/usr/bin/security find-generic-password -a rclone -s config -w"
+export RCLONE_PASSWORD_COMMAND="/usr/bin/security find-generic-password -a rclone -s config -w"
Linux
@@ -15856,11 +16402,11 @@ Let's install the "pass" utility using a package manager, e.g.
href="https://www.passwordstore.org/#download">etc.; then initialize
a password store: pass init rclone.
Generate and store a password
-echo $(openssl rand -base64 40) | pass insert -m rclone/config
+echo $(openssl rand -base64 40) | pass insert -m rclone/config
Add the retrieval instruction
-export RCLONE_PASSWORD_COMMAND="/usr/bin/pass rclone/config"
+export RCLONE_PASSWORD_COMMAND="/usr/bin/pass rclone/config"
Windows
@@ -16117,14 +16663,14 @@ variable name, so it can only contain letters, digits, or the
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
-$ export RCLONE_CONFIG_MYS3_ACCESS_KEY_ID=XXX
-$ export RCLONE_CONFIG_MYS3_SECRET_ACCESS_KEY=XXX
-$ rclone lsd mys3:
- -1 2016-09-21 12:54:21 -1 my-bucket
-$ rclone listremotes | grep mys3
-mys3:
+$ export RCLONE_CONFIG_MYS3_TYPE=s3
+$ export RCLONE_CONFIG_MYS3_ACCESS_KEY_ID=XXX
+$ export RCLONE_CONFIG_MYS3_SECRET_ACCESS_KEY=XXX
+$ rclone lsd mys3:
+ -1 2016-09-21 12:54:21 -1 my-bucket
+$ 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 that the name of a remote created using environment variable is
@@ -16133,11 +16679,11 @@ as documented above. You must write
the name in uppercase in the environment variable, but as seen from
example above it will be listed and can be accessed in lowercase, while
you can also refer to the same remote in uppercase:
-$ rclone lsd mys3:
- -1 2016-09-21 12:54:21 -1 my-bucket
-$ rclone lsd MYS3:
- -1 2016-09-21 12:54:21 -1 my-bucket
+$ rclone lsd mys3:
+ -1 2016-09-21 12:54:21 -1 my-bucket
+$ rclone lsd MYS3:
+ -1 2016-09-21 12:54:21 -1 my-bucket
Note that you can only set the options of the immediate backend, so
RCLONE_CONFIG_MYS3CRYPT_ACCESS_KEY_ID has no effect, if myS3Crypt is a
crypt remote based on an S3 remote. However RCLONE_S3_ACCESS_KEY_ID will
@@ -16145,8 +16691,8 @@ set the access key of all remotes using S3, including myS3Crypt.
Note also that now rclone has connection strings, it is probably easier
to use those instead which makes the above example
-rclone lsd :s3,access_key_id=XXX,secret_access_key=XXX:
+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.
@@ -16215,7 +16761,7 @@ two ways of doing it, described below.
authorize
On the headless box run rclone config but answer
N to the Use auto config? question.
-
Use auto config?
+Use auto config?
* Say Y if not sure
* Say N if you are working on a remote or headless machine
@@ -16229,12 +16775,12 @@ a web browser available.
For more help and alternate methods see: https://rclone.org/remote_setup/
Execute the following on the machine with the web browser (same rclone
version recommended):
- rclone authorize "onedrive"
+rclone authorize "onedrive"
Then paste the result.
Enter a value.
config_token>
Then on your main desktop machine
-rclone authorize "onedrive"
+rclone authorize "onedrive"
If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
Log in and authorize rclone for access
Waiting for code...
@@ -16243,7 +16789,7 @@ Paste the following into your remote machine --->
SECRET_TOKEN
<---End paste
Then back to the headless box, paste in the code
-config_token> SECRET_TOKEN
+config_token> SECRET_TOKEN
--------------------
[acd12]
client_id =
@@ -16259,23 +16805,26 @@ the config file
Rclone stores all of its config in a single configuration file. This
can easily be copied to configure a remote rclone.
So first configure rclone on your desktop machine with
-rclone config
+rclone config
to set up the config file.
Find the config file by running rclone config file, for
example
-$ rclone config file
-Configuration file is stored at:
-/home/user/.rclone.conf
+$ rclone config file
+Configuration file is stored at:
+/home/user/.rclone.conf
Now transfer it to the remote box (scp, cut paste, ftp, sftp, etc.)
and place it in the correct place (use rclone config file
on the remote box to find out where).
Configuring using SSH Tunnel
Linux and MacOS users can utilize SSH Tunnel to redirect the headless
box port 53682 to local machine by using the following command:
-ssh -L localhost:53682:localhost:53682 username@remote_server
+ssh -L localhost:53682:localhost:53682 username@remote_server
Then on the headless box run rclone config and answer
Y to the Use auto config? question.
-Use auto config?
+Use auto config?
* Say Y if not sure
* Say N if you are working on a remote or headless machine
@@ -16389,7 +16938,8 @@ Windows.
bash uses) to make things easy for users. However this does
not provide absolute control over the matching, so for advanced users
rclone also provides a regular expression syntax.
-The regular expressions used are as defined in the Rclone generally accepts Perl-style regular expressions, the exact
+syntax is defined in the Go regular expression
reference. Regular expressions should be enclosed in {{
}}. They will match only the last path segment if the glob
@@ -16761,12 +17311,12 @@ files on remote: with suffix .png and
.jpg. All other files are excluded.
E.g. multiple rclone copy commands can be combined with
--include and a pattern-list.
-rclone copy /vol1/A remote:A
-rclone copy /vol1/B remote:B
+rclone copy /vol1/A remote:A
+rclone copy /vol1/B remote:B
is equivalent to:
-rclone copy /vol1 remote: --include "{A,B}/**"
+rclone copy /vol1 remote: --include "{A,B}/**"
E.g. rclone ls remote:/wheat --include "??[^[:punct:]]*"
lists the files remote: directory wheat (and
subdirectories) whose third character is not punctuation. This example
@@ -16926,8 +17476,8 @@ without leading /, e.g.
user1/dir/ford
user2/prefect
Then copy these to a remote:
-rclone copy --files-from files-from.txt /home remote:backup
+rclone copy --files-from files-from.txt /home remote:backup
The three files are transferred as follows:
/home/user1/42 → remote:backup/user1/important
/home/user1/dir/ford → remote:backup/user1/dir/file
@@ -16938,8 +17488,8 @@ class="sourceCode sh">rclone copy --files-from files-from.txt / remote:backup
+rclone copy --files-from files-from.txt / remote:backup
Then there will be an extra home directory on the
remote:
/home/user1/42 → remote:backup/home/user1/42
@@ -17034,8 +17584,8 @@ subset of files, useful for:
Syntax
The flag takes two parameters expressed as a fraction:
-