diff --git a/MANUAL.html b/MANUAL.html index 51a73d999..be1581709 100644 --- a/MANUAL.html +++ b/MANUAL.html @@ -6,81 +6,82 @@ rclone(1) User Manual - -

rclone(1) User Manual

Nick Craig-Wood

-

Nov 01, 2021

+

Mar 18, 2022

Rclone syncs your files to cloud storage

rclone logo

@@ -94,14 +95,14 @@ code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warni
  • Donate.
  • About rclone

    -

    Rclone is a command line program to manage files on cloud storage. It is a feature rich alternative to cloud vendors' web storage interfaces. Over 40 cloud storage products support rclone including S3 object stores, business & consumer file storage services, as well as standard transfer protocols.

    +

    Rclone is a command-line program to manage files on cloud storage. It is a feature-rich alternative to cloud vendors' web storage interfaces. Over 40 cloud storage products support rclone including S3 object stores, business & consumer file storage services, as well as standard transfer protocols.

    Rclone has powerful cloud equivalents to the unix commands rsync, cp, mv, mount, ls, ncdu, tree, rm, and cat. Rclone's familiar syntax includes shell pipeline support, and --dry-run protection. It is used at the command line, in scripts or via its API.

    Users call rclone "The Swiss army knife of cloud storage", and "Technology indistinguishable from magic".

    Rclone really looks after your data. It preserves timestamps and verifies checksums at all times. Transfers over limited bandwidth; intermittent connections, or subject to quota can be restarted, from the last good file transferred. You can check the integrity of your files. Where possible, rclone employs server-side transfers to minimise local bandwidth use and transfers from one provider to another without using local disk.

    Virtual backends wrap local and cloud file systems to apply encryption, compression, chunking, hashing and joining.

    Rclone mounts any local, cloud or virtual filesystem as a disk on Windows, macOS, linux and FreeBSD, and also serves these over SFTP, HTTP, WebDAV, FTP and DLNA.

    -

    Rclone is mature, open source software originally inspired by rsync and written in Go. The friendly support community are familiar with varied use cases. Official Ubuntu, Debian, Fedora, Brew and Chocolatey repos. include rclone. For the latest version downloading from rclone.org is recommended.

    -

    Rclone is widely used on Linux, Windows and Mac. Third party developers create innovative backup, restore, GUI and business process solutions using the rclone command line or API.

    +

    Rclone is mature, open-source software originally inspired by rsync and written in Go. The friendly support community is familiar with varied use cases. Official Ubuntu, Debian, Fedora, Brew and Chocolatey repos. include rclone. For the latest version downloading from rclone.org is recommended.

    +

    Rclone is widely used on Linux, Windows and Mac. Third-party developers create innovative backup, restore, GUI and business process solutions using the rclone command line or API.

    Rclone does the heavy lifting of communicating with cloud storage.

    What can rclone do for you?

    Rclone helps you:

    @@ -109,7 +110,7 @@ code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warni
  • Backup (and encrypt) files to cloud storage
  • Restore (and decrypt) files from cloud storage
  • Mirror cloud data to other cloud services or locally
  • -
  • Migrate data to cloud, or between cloud storage vendors
  • +
  • Migrate data to the cloud, or between cloud storage vendors
  • Mount multiple, encrypted, cached or diverse cloud storage as a disk
  • Analyse and account for data held on cloud storage using lsf, ljson, size, ncdu
  • Union file systems together to present multiple local and/or cloud file systems as one
  • @@ -136,6 +137,7 @@ code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warni

    (There are many others, built on standard protocols such as WebDAV or S3, that work out of the box.)

    -

    ls,lsl,lsd are designed to be human readable. lsf is designed to be human and machine readable. lsjson is designed to be machine readable.

    +

    ls,lsl,lsd are designed to be human-readable. lsf is designed to be human and machine-readable. lsjson is designed to be machine-readable.

    Note that ls and lsl recurse by default - use --max-depth 1 to stop the recursion.

    The other list commands lsd,lsf,lsjson do not recurse by default - use -R to make them recurse.

    -

    Listing a non existent directory will produce an error except for remotes which can't have empty directories (e.g. s3, swift, or gcs - the bucket based remotes).

    +

    Listing a non-existent directory will produce an error except for remotes which can't have empty directories (e.g. s3, swift, or gcs - the bucket-based remotes).

    rclone lsd remote:path [flags]

    Options

      -h, --help        help for lsd
    @@ -703,10 +709,10 @@ rclone --dry-run --min-size 100M delete remote:path
  • lsf to list objects and directories in easy to parse format
  • lsjson to list objects and directories in JSON format
  • -

    ls,lsl,lsd are designed to be human readable. lsf is designed to be human and machine readable. lsjson is designed to be machine readable.

    +

    ls,lsl,lsd are designed to be human-readable. lsf is designed to be human and machine-readable. lsjson is designed to be machine-readable.

    Note that ls and lsl recurse by default - use --max-depth 1 to stop the recursion.

    The other list commands lsd,lsf,lsjson do not recurse by default - use -R to make them recurse.

    -

    Listing a non existent directory will produce an error except for remotes which can't have empty directories (e.g. s3, swift, or gcs - the bucket based remotes).

    +

    Listing a non-existent directory will produce an error except for remotes which can't have empty directories (e.g. s3, swift, or gcs - the bucket-based remotes).

    rclone lsl remote:path [flags]

    Options

      -h, --help   help for lsl
    @@ -720,6 +726,7 @@ rclone --dry-run --min-size 100M delete remote:path

    Synopsis

    Produces an md5sum file for all the objects in the path. This is in the same format as the standard md5sum tool produces.

    By default, the hash is requested from the remote. If MD5 is not supported by the remote, no hash will be returned. With the download flag, the file will be downloaded from the remote and hashed locally enabling MD5 for any remote.

    +

    This command can also hash data received on standard input (stdin), by not passing a remote:path, or by passing a hyphen as remote:path when there is data to read (if not, the hypen will be treated literaly, as a relative path).

    rclone md5sum remote:path [flags]

    Options

          --base64               Output base64 encoded hashsum
    @@ -737,6 +744,8 @@ rclone --dry-run --min-size 100M delete remote:path

    Synopsis

    Produces an sha1sum file for all the objects in the path. This is in the same format as the standard sha1sum tool produces.

    By default, the hash is requested from the remote. If SHA-1 is not supported by the remote, no hash will be returned. With the download flag, the file will be downloaded from the remote and hashed locally enabling SHA-1 for any remote.

    +

    This command can also hash data received on standard input (stdin), by not passing a remote:path, or by passing a hyphen as remote:path when there is data to read (if not, the hypen will be treated literaly, as a relative path).

    +

    This command can also hash data received on STDIN, if not passing a remote:path.

    rclone sha1sum remote:path [flags]

    Options

          --base64               Output base64 encoded hashsum
    @@ -815,9 +824,9 @@ beta:   1.42.0.5      (released 2018-06-17)
     

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

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

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

    -

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

    +

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

    dedupe considers files to be identical if they have the same file path and the same hash. If the backend does not support hashes (e.g. crypt wrapping Google Drive) then they will never be found to be identical. If you use the --size-only flag then files will be considered identical if they have the same size (any hash will be ignored). This can be useful on crypt backends which do not support hashes.

    -

    Next rclone will resolve the remaining duplicates. Exactly which action is taken depends on the dedupe mode. By default rclone will interactively query the user for each one.

    +

    Next rclone will resolve the remaining duplicates. Exactly which action is taken depends on the dedupe mode. By default, rclone will interactively query the user for each one.

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

    Here is an example run.

    Before - with duplicates

    @@ -873,13 +882,13 @@ two-3.txt: renamed from: two.txt
  • --dedupe-mode rename - removes identical files then renames the rest to be different.
  • --dedupe-mode list - lists duplicate dirs and files only and changes nothing.
  • -

    For example to rename all the identically named photos in your Google Photos directory, do

    +

    For example, to rename all the identically named photos in your Google Photos directory, do

    rclone dedupe --dedupe-mode rename "drive:Google Photos"

    Or

    rclone dedupe rename "drive:Google Photos"
    rclone dedupe [mode] remote:path [flags]

    Options

    -
          --by-hash              Find indentical hashes rather than names
    +
          --by-hash              Find identical hashes rather than names
           --dedupe-mode string   Dedupe mode interactive|skip|first|newest|oldest|largest|smallest|rename (default "interactive")
       -h, --help                 help for dedupe

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

    @@ -913,7 +922,7 @@ Used: 7993453766 Free: 1411001220 Trashed: 104857602 Other: 8849156022
    -

    A --json flag generates conveniently computer readable output, e.g.

    +

    A --json flag generates conveniently machine-readable output, e.g.

    {
         "total": 18253611008,
         "used": 7993453766,
    @@ -948,19 +957,19 @@ Other:   8849156022
  • rclone - Show help for rclone commands, flags and backends.
  • rclone backend

    -

    Run a backend specific command.

    +

    Run a backend-specific command.

    Synopsis

    -

    This runs a backend specific command. The commands themselves (except for "help" and "features") are defined by the backends and you should see the backend docs for definitions.

    +

    This runs a backend-specific command. The commands themselves (except 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>
    -

    You can also discover information about the backend using (see operations/fsinfo in the remote control docs for more info).

    +

    You can also discover information about the backend using (see operations/fsinfo in the remote control docs for more info).

    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

    Pass arguments to the backend by placing them on the end of the line

    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.

    +

    Note to run these commands on a running backend then see backend/command in the rc docs.

    rclone backend <command> remote:path [opts] <args> [flags]

    Options

      -h, --help                 help for backend
    @@ -971,9 +980,33 @@ rclone backend help <backendname>
    +

    rclone bisync

    +

    Perform bidirectonal synchronization between two paths.

    +

    Synopsis

    +

    Perform bidirectonal synchronization between two paths.

    +

    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.

    +

    See full bisync description for details.

    +
    rclone bisync remote1:path1 remote2:path2 [flags]
    +

    Options

    +
          --check-access            Ensure expected RCLONE_TEST files are found on both Path1 and Path2 filesystems, else abort.
    +      --check-filename string   Filename for --check-access (default: RCLONE_TEST)
    +      --check-sync string       Controls comparison of final listings: true|false|only (default: true) (default "true")
    +      --filters-file string     Read filtering patterns from a file
    +      --force                   Bypass --max-delete safety check and run the sync. Consider using with --verbose
    +  -h, --help                    help for bisync
    +      --localtime               Use local time in listings (default: UTC)
    +      --no-cleanup              Retain working files (useful for troubleshooting and testing).
    +      --remove-empty-dirs       Remove empty directories at the final cleanup step.
    +  -1, --resync                  Performs the resync run. Path1 files may overwrite Path2 versions. Consider using --verbose or --dry-run first.
    +      --workdir string          Use custom working dir - useful for testing. (default: $HOME/.cache/rclone/bisync)
    +

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

    +

    SEE ALSO

    +

    rclone cat

    Concatenates any files and sends them to stdout.

    -

    Synopsis

    +

    Synopsis

    rclone cat sends any files to standard output.

    You can use it like this to output a single file

    rclone cat remote:path/to/file
    @@ -983,7 +1016,7 @@ rclone backend help <backendname>
    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 offset is negative it will count from the end, so --offset -1 --count 1 is equivalent to --tail 1.

    rclone cat remote:path [flags]
    -

    Options

    +

    Options

          --count int    Only print N characters (default -1)
           --discard      Discard the output instead of printing
           --head int     Only print the first N characters
    @@ -991,13 +1024,13 @@ rclone backend help <backendname>
    --offset int Start printing at offset N (or from end if -ve) --tail int Only print the last N characters

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

    -

    SEE ALSO

    +

    SEE ALSO

    rclone checksum

    Checks the files in the source against a SUM file.

    -

    Synopsis

    +

    Synopsis

    Checks that hashsums of source files match the SUM file. It compares hashes (MD5, SHA1, etc) and logs a report of files which don't match. It doesn't alter the file system.

    If you supply the --download flag, it will download the data from remote and calculate the contents hash on the fly. This can be useful for remotes that don't support hashes or if you really want to check all the data.

    Note that hash values in the SUM file are treated as case insensitive.

    @@ -1006,13 +1039,13 @@ rclone backend help <backendname>

    The --combined flag will write a file (or stdout) which contains all file paths with a symbol and then a space and then the path to tell you what happened to it. These are reminiscent of diff files.

    rclone checksum <hash> sumfile src:path [flags]
    -

    Options

    +

    Options

          --combined string         Make a combined report of changes to this file
           --differ string           Report all non-matching files to this file
           --download                Check by hashing the contents
    @@ -1023,18 +1056,18 @@ rclone backend help <backendname>
    --missing-on-src string Report all files missing from the source to this file --one-way Check one way only, source files must exist on remote

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

    -

    SEE ALSO

    +

    SEE ALSO

    rclone completion

    generate the autocompletion script for the specified shell

    -

    Synopsis

    +

    Synopsis

    Generate the autocompletion script for rclone for the specified shell. See each sub-command's help for details on how to use the generated script.

    -

    Options

    +

    Options

      -h, --help   help for completion

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

    -

    SEE ALSO

    +

    SEE ALSO

    rclone completion bash

    generate the autocompletion script for bash

    -

    Synopsis

    +

    Synopsis

    Generate the autocompletion script for the bash shell.

    This script depends on the 'bash-completion' package. If it is not installed already, you can install it via your OS's package manager.

    To load completions in your current shell session: $ source <(rclone completion bash)

    To load completions for every new session, execute once: Linux: $ rclone completion bash > /etc/bash_completion.d/rclone MacOS: $ rclone completion bash > /usr/local/etc/bash_completion.d/rclone

    You will need to start a new shell for this setup to take effect.

    rclone completion bash
    -

    Options

    -
      -h, --help              help for bash
    -      --no-descriptions   disable completion descriptions
    -

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

    -

    SEE ALSO

    - -

    rclone completion fish

    -

    generate the autocompletion script for fish

    -

    Synopsis

    -

    Generate the autocompletion script for the fish shell.

    -

    To load completions in your current shell session: $ rclone completion fish | source

    -

    To load completions for every new session, execute once: $ rclone completion fish > ~/.config/fish/completions/rclone.fish

    -

    You will need to start a new shell for this setup to take effect.

    -
    rclone completion fish [flags]

    Options

    -
      -h, --help              help for fish
    +
      -h, --help              help for bash
           --no-descriptions   disable completion descriptions

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

    SEE ALSO

    -

    rclone completion powershell

    -

    generate the autocompletion script for powershell

    +

    rclone completion fish

    +

    generate the autocompletion script for fish

    Synopsis

    -

    Generate the autocompletion script for powershell.

    -

    To load completions in your current shell session: PS C:> 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.

    -
    rclone completion powershell [flags]
    +

    Generate the autocompletion script for the fish shell.

    +

    To load completions in your current shell session: $ rclone completion fish | source

    +

    To load completions for every new session, execute once: $ rclone completion fish > ~/.config/fish/completions/rclone.fish

    +

    You will need to start a new shell for this setup to take effect.

    +
    rclone completion fish [flags]

    Options

    -
      -h, --help              help for powershell
    +
      -h, --help              help for fish
           --no-descriptions   disable completion descriptions

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

    SEE ALSO

    -

    rclone completion zsh

    -

    generate the autocompletion script for zsh

    +

    rclone completion powershell

    +

    generate the autocompletion script for powershell

    Synopsis

    -

    Generate the autocompletion script for the zsh shell.

    -

    If shell completion is not already enabled in your environment you will need to enable it. You can execute the following once:

    -

    $ echo "autoload -U compinit; compinit" >> ~/.zshrc

    -

    To load completions for every new session, execute once: # Linux: $ rclone completion zsh > "${fpath[1]}/_rclone" # macOS: $ rclone completion zsh > /usr/local/share/zsh/site-functions/_rclone

    -

    You will need to start a new shell for this setup to take effect.

    -
    rclone completion zsh [flags]
    +

    Generate the autocompletion script for powershell.

    +

    To load completions in your current shell session: PS C:> 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.

    +
    rclone completion powershell [flags]

    Options

    -
      -h, --help              help for zsh
    +
      -h, --help              help for powershell
           --no-descriptions   disable completion descriptions

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

    SEE ALSO

    +

    rclone completion zsh

    +

    generate the autocompletion script for zsh

    +

    Synopsis

    +

    Generate the autocompletion script for the zsh shell.

    +

    If shell completion is not already enabled in your environment you will need to enable it. You can execute the following once:

    +

    $ echo "autoload -U compinit; compinit" >> ~/.zshrc

    +

    To load completions for every new session, execute once: # Linux: $ rclone completion zsh > "${fpath[1]}/_rclone" # macOS: $ rclone completion zsh > /usr/local/share/zsh/site-functions/_rclone

    +

    You will need to start a new shell for this setup to take effect.

    +
    rclone completion zsh [flags]
    +

    Options

    +
      -h, --help              help for zsh
    +      --no-descriptions   disable completion descriptions
    +

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

    +

    SEE ALSO

    +

    rclone config create

    Create a new remote with name, type and options.

    -

    Synopsis

    +

    Synopsis

    Create a new remote of name with type and 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:

    +

    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

    So for example if you wanted to configure a Google Drive remote but using remote authorization you would do this:

    @@ -1164,7 +1197,7 @@ rclone config create myremote swift env_auth=true

    If --all is passed then rclone will ask all the config questions, not just the post config questions. Any parameters are used as defaults for questions as usual.

    Note that bin/config.py in the rclone source implements this protocol as a readable demonstration.

    rclone config create name type [key value]* [flags]
    -

    Options

    +

    Options

          --all               Ask the full set of config questions
           --continue          Continue the configuration process with an answer
       -h, --help              help for create
    @@ -1174,141 +1207,141 @@ rclone config create myremote swift env_auth=true
    --result string Result - use with --continue --state string State - use with --continue

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

    -

    SEE ALSO

    +

    SEE ALSO

    rclone config delete

    Delete an existing remote.

    rclone config delete name [flags]
    -

    Options

    +

    Options

      -h, --help   help for delete

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

    -

    SEE ALSO

    +

    SEE ALSO

    rclone config disconnect

    Disconnects user from remote

    -

    Synopsis

    +

    Synopsis

    This disconnects the remote: passed in to the cloud storage system.

    This normally means revoking the oauth token.

    To reconnect use "rclone config reconnect".

    rclone config disconnect remote: [flags]
    -

    Options

    +

    Options

      -h, --help   help for disconnect

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

    -

    SEE ALSO

    +

    SEE ALSO

    rclone config dump

    Dump the config file as JSON.

    rclone config dump [flags]
    -

    Options

    +

    Options

      -h, --help   help for dump

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

    -

    SEE ALSO

    +

    SEE ALSO

    rclone config edit

    Enter an interactive configuration session.

    -

    Synopsis

    +

    Synopsis

    Enter an interactive configuration session where you can setup new remotes and manage existing ones. You may also set or remove a password to protect your configuration.

    rclone config edit [flags]
    -

    Options

    +

    Options

      -h, --help   help for edit

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

    -

    SEE ALSO

    +

    SEE ALSO

    rclone config file

    Show path of configuration file in use.

    rclone config file [flags]
    -

    Options

    +

    Options

      -h, --help   help for file

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

    -

    SEE ALSO

    +

    SEE ALSO

    rclone config password

    Update password in an existing remote.

    -

    Synopsis

    +

    Synopsis

    Update an existing remote's password. The password should be passed in pairs of key password or as key=password. The password should be passed in in clear (unobscured).

    -

    For example to set password of a remote of name myremote you would do:

    +

    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

    This command is obsolete now that "config update" and "config create" both support obscuring passwords directly.

    rclone config password name [key value]+ [flags]
    -

    Options

    +

    Options

      -h, --help   help for password

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

    -

    SEE ALSO

    +

    SEE ALSO

    rclone config paths

    Show paths used for configuration, cache, temp etc.

    rclone config paths [flags]
    -

    Options

    +

    Options

      -h, --help   help for paths

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

    -

    SEE ALSO

    +

    SEE ALSO

    rclone config providers

    List in JSON format all the providers and options.

    rclone config providers [flags]
    -

    Options

    +

    Options

      -h, --help   help for providers

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

    -

    SEE ALSO

    +

    SEE ALSO

    rclone config reconnect

    Re-authenticates user with remote.

    -

    Synopsis

    +

    Synopsis

    This reconnects remote: passed in to the cloud storage system.

    To disconnect the remote use "rclone config disconnect".

    This normally means going through the interactive oauth flow again.

    rclone config reconnect remote: [flags]
    -

    Options

    +

    Options

      -h, --help   help for reconnect

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

    -

    SEE ALSO

    +

    SEE ALSO

    rclone config show

    Print (decrypted) config file, or the config for a single remote.

    rclone config show [<remote>] [flags]
    -

    Options

    +

    Options

      -h, --help   help for show

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

    -

    SEE ALSO

    +

    SEE ALSO

    rclone config touch

    Ensure configuration file exists.

    rclone config touch [flags]
    -

    Options

    +

    Options

      -h, --help   help for touch

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

    -

    SEE ALSO

    +

    SEE ALSO

    rclone config update

    Update options in an existing remote.

    -

    Synopsis

    +

    Synopsis

    Update an existing remote's options. The options should be passed in 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:

    +

    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

    If the remote uses OAuth the token will be updated, if you don't require this add an extra parameter thus:

    @@ -1361,7 +1394,7 @@ rclone config update myremote env_auth=true

    If --all is passed then rclone will ask all the config questions, not just the post config questions. Any parameters are used as defaults for questions as usual.

    Note that bin/config.py in the rclone source implements this protocol as a readable demonstration.

    rclone config update name [key value]+ [flags]
    -

    Options

    +

    Options

          --all               Ask the full set of config questions
           --continue          Continue the configuration process with an answer
       -h, --help              help for update
    @@ -1371,26 +1404,26 @@ rclone config update myremote env_auth=true
    --result string Result - use with --continue --state string State - use with --continue

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

    -

    SEE ALSO

    +

    SEE ALSO

    rclone config userinfo

    Prints info about logged in user of remote.

    -

    Synopsis

    +

    Synopsis

    This prints the details of the person logged in to the cloud storage system.

    rclone config userinfo remote: [flags]
    -

    Options

    +

    Options

      -h, --help   help for userinfo
           --json   Format output as JSON

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

    -

    SEE ALSO

    +

    SEE ALSO

    rclone copyto

    Copy files from source to dest, skipping identical files.

    -

    Synopsis

    +

    Synopsis

    If source:path is a file or directory then it copies it to a file or directory named dest:path.

    This can be used to upload single files to other than their current name. If the source is a directory then it acts exactly like the copy command.

    So

    @@ -1405,35 +1438,35 @@ if src is directory

    This doesn't transfer files that are identical on src and dst, testing by size and modification time or MD5SUM. It doesn't delete files from the destination.

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

    rclone copyto source:path dest:path [flags]
    -

    Options

    +

    Options

      -h, --help   help for copyto

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

    -

    SEE ALSO

    +

    SEE ALSO

    rclone copyurl

    Copy url content to dest.

    -

    Synopsis

    +

    Synopsis

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

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

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

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

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

    Options

    +

    Options

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

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

    -

    SEE ALSO

    +

    SEE ALSO

    rclone cryptcheck

    Cryptcheck checks the integrity of a crypted remote.

    -

    Synopsis

    +

    Synopsis

    rclone cryptcheck checks a remote against a crypted remote. This is the equivalent of running rclone check, but able to check the checksums of the crypted remote.

    For it to work the underlying remote of the cryptedremote must support some kind of checksum.

    It works by reading the nonce from each file on the cryptedremote: 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.

    @@ -1447,13 +1480,13 @@ if src is directory

    The --combined flag will write a file (or stdout) which contains all file paths with a symbol and then a space and then the path to tell you what happened to it. These are reminiscent of diff files.

    rclone cryptcheck remote:path cryptedremote:path [flags]
    -

    Options

    +

    Options

          --combined string         Make a combined report of changes to this file
           --differ string           Report all non-matching files to this file
           --error string            Report all files with errors (hashing or reading) to this file
    @@ -1463,13 +1496,13 @@ if src is directory
           --missing-on-src string   Report all files missing from the source to this file
           --one-way                 Check one way only, source files must exist on remote

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

    -

    SEE ALSO

    +

    SEE ALSO

    rclone cryptdecode

    Cryptdecode returns unencrypted file names.

    -

    Synopsis

    +

    Synopsis

    rclone cryptdecode returns unencrypted file names when provided with a list of encrypted file names. List limit is 10 items.

    If you supply the --reverse flag, it will return encrypted file names.

    use it like this

    @@ -1478,43 +1511,43 @@ if src is directory 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 overlay for more info.

    rclone cryptdecode encryptedremote: encryptedfilename [flags]
    -

    Options

    +

    Options

      -h, --help      help for cryptdecode
           --reverse   Reverse cryptdecode, encrypts filenames

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

    -

    SEE ALSO

    - -

    rclone deletefile

    -

    Remove a single file from remote.

    -

    Synopsis

    -

    Remove a single file from remote. Unlike delete it cannot be used to remove a directory and it doesn't obey include/exclude filters - if the specified file exists, it will always be removed.

    -
    rclone deletefile remote:path [flags]
    -

    Options

    -
      -h, --help   help for deletefile
    -

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

    SEE ALSO

    -

    rclone genautocomplete

    -

    Output completion script for a given shell.

    +

    rclone deletefile

    +

    Remove a single file from remote.

    Synopsis

    -

    Generates a shell completion script for rclone. Run with --help to list the supported shells.

    +

    Remove a single file from remote. Unlike delete it cannot be used to remove a directory and it doesn't obey include/exclude filters - if the specified file exists, it will always be removed.

    +
    rclone deletefile remote:path [flags]

    Options

    -
      -h, --help   help for genautocomplete
    +
      -h, --help   help for deletefile

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

    SEE ALSO

    +

    rclone genautocomplete

    +

    Output completion script for a given shell.

    +

    Synopsis

    +

    Generates a shell completion script for rclone. Run with --help to list the supported shells.

    +

    Options

    +
      -h, --help   help for genautocomplete
    +

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

    +

    SEE ALSO

    +

    rclone genautocomplete bash

    Output bash completion script for rclone.

    -

    Synopsis

    +

    Synopsis

    Generates a bash shell autocompletion script for rclone.

    This writes to /etc/bash_completion.d/rclone by default so will probably need to be run with sudo or as root, e.g.

    sudo rclone genautocomplete bash
    @@ -1523,16 +1556,16 @@ rclone cryptdecode --reverse encryptedremote: filename1 filename2

    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.

    rclone genautocomplete bash [output_file] [flags]
    -

    Options

    +

    Options

      -h, --help   help for bash

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

    -

    SEE ALSO

    +

    SEE ALSO

    rclone genautocomplete fish

    Output fish completion script for rclone.

    -

    Synopsis

    +

    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 genautocomplete fish
    @@ -1541,16 +1574,16 @@ rclone cryptdecode --reverse encryptedremote: filename1 filename2

    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.

    rclone genautocomplete fish [output_file] [flags]
    -

    Options

    +

    Options

      -h, --help   help for fish

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

    -

    SEE ALSO

    +

    SEE ALSO

    rclone genautocomplete zsh

    Output zsh completion script for rclone.

    -

    Synopsis

    +

    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 genautocomplete zsh
    @@ -1559,30 +1592,31 @@ rclone cryptdecode --reverse encryptedremote: filename1 filename2

    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.

    rclone genautocomplete zsh [output_file] [flags]
    -

    Options

    +

    Options

      -h, --help   help for zsh

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

    -

    SEE ALSO

    +

    SEE ALSO

    rclone gendocs

    Output markdown docs for rclone to the directory supplied.

    -

    Synopsis

    +

    Synopsis

    This produces markdown docs for the rclone commands to the directory supplied. These are in a format suitable for hugo to render into the rclone.org website.

    rclone gendocs output_directory [flags]
    -

    Options

    +

    Options

      -h, --help   help for gendocs

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

    -

    SEE ALSO

    +

    SEE ALSO

    rclone hashsum

    Produces a hashsum file for all the objects in the path.

    -

    Synopsis

    +

    Synopsis

    Produces a hash file for all the objects in the path using the hash named. The output is in the same format as the standard md5sum/sha1sum tool.

    By default, the hash is requested from the remote. If the hash is not supported by the remote, no hash will be returned. With the download flag, the file will be downloaded from the remote and hashed locally enabling any hash for any remote.

    +

    This command can also hash data received on standard input (stdin), by not passing a remote:path, or by passing a hyphen as remote:path when there is data to read (if not, the hypen will be treated literaly, as a relative path).

    Run without a hash to see the list of all supported hashes, e.g.

    $ rclone hashsum
     Supported hashes are:
    @@ -1598,20 +1632,20 @@ Supported hashes are:
     
    $ 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]
    -

    Options

    +

    Options

          --base64               Output base64 encoded hashsum
       -C, --checkfile string     Validate hashes against a given SUM file instead of printing them
           --download             Download the file and hash it locally; if this flag is not specified, the hash is requested from the remote
       -h, --help                 help for hashsum
           --output-file string   Output hashsums to a file rather than the terminal

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

    -

    SEE ALSO

    +

    SEE ALSO

    rclone link

    Generate public link to file/folder.

    -

    Synopsis

    +

    Synopsis

    rclone link will 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/
    @@ -1621,32 +1655,32 @@ rclone link --expire 1d remote:path/to/file

    Use the --unlink flag to remove existing public links to the file or 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 password protection, accessible without account.

    rclone link remote:path [flags]
    -

    Options

    +

    Options

          --expire Duration   The amount of time that the link will be valid (default off)
       -h, --help              help for link
           --unlink            Remove existing public link to file/folder

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

    -

    SEE ALSO

    - -

    rclone listremotes

    -

    List all the remotes in the config file.

    -

    Synopsis

    -

    rclone listremotes lists all the available remotes from the config file.

    -

    When uses with the -l flag it lists the types too.

    -
    rclone listremotes [flags]
    -

    Options

    -
      -h, --help   help for listremotes
    -      --long   Show the type as well as names
    -

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

    SEE ALSO

    +

    rclone listremotes

    +

    List all the remotes in the config file.

    +

    Synopsis

    +

    rclone listremotes lists all the available remotes from the config file.

    +

    When uses with the -l flag it lists the types too.

    +
    rclone listremotes [flags]
    +

    Options

    +
      -h, --help   help for listremotes
    +      --long   Show the type as well as names
    +

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

    +

    SEE ALSO

    +

    rclone lsf

    List directories and objects in remote:path formatted for parsing.

    -

    Synopsis

    +

    Synopsis

    List the contents of the source path (directories and objects) to 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
    @@ -1674,10 +1708,10 @@ T - tier of storage if known, e.g. "Hot" or "Cool"

    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 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

    +

    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 
    +
    $ rclone lsf -R --hash MD5 --format hp --separator "  " --files-only swift:bucket
     7908e352297f0f530b84a756f188baa3  bevajer5jef
     cd65ac234e6fea5925974a51cdd865cc  canole
     03b5341b4f234b9d984d03ad076bae91  diwogej7
    @@ -1699,7 +1733,7 @@ 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):

    +

    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

    Any of the filtering options can be applied to this command.

    @@ -1711,12 +1745,12 @@ rclone copy --files-from-raw new_files /path/to/local remote:path
  • lsf to list objects and directories in easy to parse format
  • lsjson to list objects and directories in JSON format
  • -

    ls,lsl,lsd are designed to be human readable. lsf is designed to be human and machine readable. lsjson is designed to be machine readable.

    +

    ls,lsl,lsd are designed to be human-readable. lsf is designed to be human and machine-readable. lsjson is designed to be machine-readable.

    Note that ls and lsl recurse by default - use --max-depth 1 to stop the recursion.

    The other list commands lsd,lsf,lsjson do not recurse by default - use -R to make them recurse.

    -

    Listing a non existent directory will produce an error except for remotes which can't have empty directories (e.g. s3, swift, or gcs - the bucket based remotes).

    +

    Listing a non-existent directory will produce an error except for remotes which can't have empty directories (e.g. s3, swift, or gcs - the bucket-based remotes).

    rclone lsf remote:path [flags]
    -

    Options

    +

    Options

          --absolute           Put a leading / in front of path names
           --csv                Output in CSV format
       -d, --dir-slash          Append a slash to directory names (default true)
    @@ -1728,13 +1762,13 @@ rclone copy --files-from-raw new_files /path/to/local remote:path
    -R, --recursive Recurse into the listing -s, --separator string Separator for the items in the format (default ";")

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

    -

    SEE ALSO

    +

    SEE ALSO

    rclone lsjson

    List directories and objects in the path in JSON format.

    -

    Synopsis

    +

    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", }

    @@ -1746,7 +1780,7 @@ rclone copy --files-from-raw new_files /path/to/local remote:path

    If --files-only is not specified directories in addition to the files will be returned.

    if --stat is set then a single JSON blob will be returned about the item pointed to. This will return an error if the item isn't found. However on bucket based backends (like s3, gcs, b2, azureblob etc) if the item isn't found it will return an empty directory as it isn't possible to tell empty directories from missing directories there.

    The Path field will only show folders below the remote path being listed. If "remote:path" contains the file "subfolder/file.txt", the Path for "file.txt" will be "subfolder/file.txt", not "remote:path/subfolder/file.txt". When used without --recursive the Path will always be the same as Name.

    -

    If the directory is a bucket in a bucket based backend, then "IsBucket" will be set to true. This key won't be present unless it is "true".

    +

    If the directory is a bucket in a bucket-based backend, then "IsBucket" will be set to true. This key won't be present unless it is "true".

    The time is in RFC3339 format with up to nanosecond precision. The number of decimal digits in the seconds will depend on the precision that the remote can hold the times, so if times are accurate to the nearest millisecond (e.g. Google Drive) then 3 digits will always be shown ("2017-05-31T16:15:57.034+01:00") whereas if the times are accurate to the nearest second (Dropbox, Box, WebDav, etc.) no digits will be shown ("2017-05-31T16:15:57+01:00").

    The whole output can be processed as a JSON blob, or alternatively it can be processed line by line as each item is written one to a line.

    Any of the filtering options can be applied to this command.

    @@ -1758,12 +1792,12 @@ rclone copy --files-from-raw new_files /path/to/local remote:path
  • lsf to list objects and directories in easy to parse format
  • lsjson to list objects and directories in JSON format
  • -

    ls,lsl,lsd are designed to be human readable. lsf is designed to be human and machine readable. lsjson is designed to be machine readable.

    +

    ls,lsl,lsd are designed to be human-readable. lsf is designed to be human and machine-readable. lsjson is designed to be machine-readable.

    Note that ls and lsl recurse by default - use --max-depth 1 to stop the recursion.

    The other list commands lsd,lsf,lsjson do not recurse by default - use -R to make them recurse.

    -

    Listing a non existent directory will produce an error except for remotes which can't have empty directories (e.g. s3, swift, or gcs - the bucket based remotes).

    +

    Listing a non-existent directory will produce an error except for remotes which can't have empty directories (e.g. s3, swift, or gcs - the bucket-based remotes).

    rclone lsjson remote:path [flags]
    -

    Options

    +

    Options

          --dirs-only               Show only directories in the listing
       -M, --encrypted               Show the encrypted names
           --files-only              Show only files in the listing
    @@ -1776,13 +1810,13 @@ rclone copy --files-from-raw new_files /path/to/local remote:path
    -R, --recursive Recurse into the listing --stat Just return the info for the pointed to file

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

    -

    SEE ALSO

    +

    SEE ALSO

    rclone mount

    Mount the remote as file system on a mountpoint.

    -

    Synopsis

    +

    Synopsis

    rclone mount allows Linux, FreeBSD, macOS and Windows to mount any of Rclone's cloud storage systems as a file system with FUSE.

    First set up your remote using rclone config. Check it works with rclone ls etc.

    On Linux and macOS, you can run mount in either foreground or background (aka daemon) mode. Mount runs in foreground mode by default. Use the --daemon flag to force background mode. On Windows you can run mount in foreground only, the flag is ignored.

    @@ -1805,7 +1839,7 @@ umount /path/to/local/mount

    The size of the mounted file system will be set according to information retrieved from the remote, the same as returned by the rclone about command. Remotes with unlimited storage may report the used size only, then an additional 1 PiB of free space is assumed. If the remote does not support the about feature at all, then 1 PiB is set as both the total and the free size.

    Installing on Windows

    To run rclone mount on Windows, you will need to download and install WinFsp.

    -

    WinFsp is an open source Windows File System Proxy which makes it easy to write user space file systems for Windows. It provides a FUSE emulation layer which rclone uses combination with cgofuse. Both of these packages are by Bill Zissimopoulos who was very helpful during the implementation of rclone mount for Windows.

    +

    WinFsp is an open-source Windows File System Proxy which makes it easy to write user space file systems for Windows. It provides a FUSE emulation layer which rclone uses combination with cgofuse. Both of these packages are by Bill Zissimopoulos who was very helpful during the implementation of rclone mount for Windows.

    Mounting modes on windows

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

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

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

    Note that mapping to a directory path, instead of a drive letter, does not suffer from the same limitations.

    Limitations

    Without the use of --vfs-cache-mode this can only write files sequentially, it can only seek when reading. This means that many applications won't work with their files on an rclone mount without --vfs-cache-mode writes or --vfs-cache-mode full. See the VFS File Caching section for more info.

    -

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

    +

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

    When rclone mount is invoked on Unix with --daemon flag, the main rclone program will wait for the background mount to become ready or until the timeout specified by the --daemon-wait flag. On Linux it can check mount status using ProcFS so the flag in fact sets maximum time to wait, while the real wait can be less. On macOS / BSD the time to wait is constant and the check is performed only at the end. We advise you to set wait time on macOS reasonably.

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

    rclone mount vs rclone sync/copy

    @@ -1997,7 +2031,7 @@ WantedBy=multi-user.target

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

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

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

    Options

    +

    Options

          --allow-non-empty                        Allow mounting over a non-empty directory (not supported on Windows)
           --allow-other                            Allow access to other users (not supported on Windows)
           --allow-root                             Allow access to root user (not supported on Windows)
    @@ -2008,6 +2042,7 @@ WantedBy=multi-user.target
    --daemon-wait duration Time to wait for ready mount from daemon (maximum time on Linux, constant sleep time on OSX/BSD) (not supported on Windows) (default 1m0s) --debug-fuse Debug the FUSE internals - needs -v --default-permissions Makes kernel enforce access control based on the file mode (not supported on Windows) + --devname string Set the device name - default is remote:path --dir-cache-time duration Time to cache directory entries for (default 5m0s) --dir-perms FileMode Directory permissions (default 0777) --file-perms FileMode File permissions (default 0666) @@ -2041,13 +2076,13 @@ WantedBy=multi-user.target --volname string Set the volume name (supported on Windows and OSX only) --write-back-cache Makes kernel buffer writes before sending them to rclone (without this, writethrough caching is used) (not supported on Windows)

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

    -

    SEE ALSO

    +

    SEE ALSO

    rclone moveto

    Move file or directory from source to dest.

    -

    Synopsis

    +

    Synopsis

    If source:path is a file or directory then it moves it to a file or directory named dest:path.

    This can be used to rename files or upload single files to other than their existing name. If the source is a directory then it acts exactly like the move command.

    So

    @@ -2063,16 +2098,16 @@ if src is directory

    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.

    rclone moveto source:path dest:path [flags]
    -

    Options

    +

    Options

      -h, --help   help for moveto

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

    -

    SEE ALSO

    +

    SEE ALSO

    rclone ncdu

    Explore a remote with a text based user interface.

    -

    Synopsis

    +

    Synopsis

    This displays a text based user interface allowing the navigation of a remote. It is most useful for answering the question - "What is using all my disk space?".

    To make the user interface it first scans the entire remote given and builds an in memory representation. rclone ncdu can be used during this scanning phase and you will see it building up the directory structure as it goes along.

    Here are the keys - press '?' to toggle the help on and off

    @@ -2093,33 +2128,33 @@ if src is directory

    This an homage to the ncdu tool but for rclone remotes. It is missing lots of features at the moment but is useful as it stands.

    Note that it might take some time to delete big files/folders. The UI won't respond in the meantime since the deletion is done synchronously.

    rclone ncdu remote:path [flags]
    -

    Options

    +

    Options

      -h, --help   help for ncdu

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

    -

    SEE ALSO

    +

    SEE ALSO

    rclone obscure

    Obscure password for use in the rclone config file.

    -

    Synopsis

    -

    In the rclone config file, human readable passwords are obscured. Obscuring them is done by encrypting them and writing them out in base64. This is not a secure way of encrypting these passwords as rclone can decrypt them - it is to prevent "eyedropping" - namely someone seeing a password in the rclone config file by accident.

    +

    Synopsis

    +

    In the rclone config file, human-readable passwords are obscured. Obscuring them is done by encrypting them and writing them out in base64. This is not a secure way of encrypting these passwords as rclone can decrypt them - it is to prevent "eyedropping" - namely someone seeing a password in the rclone config file by accident.

    Many equally important things (like access tokens) are not obscured in the config file. However it is very hard to shoulder surf a 64 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 -

    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 encryption - see rclone config for more info.

    rclone obscure password [flags]
    -

    Options

    +

    Options

      -h, --help   help for obscure

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

    -

    SEE ALSO

    +

    SEE ALSO

    rclone rc

    Run a command against a running rclone.

    -

    Synopsis

    +

    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"

    A username and password can be passed in with --user and --pass.

    Note that --rc-addr, --rc-user, --rc-pass will be read also for --url, --user, --pass.

    @@ -2138,7 +2173,7 @@ if src is directory
    rclone rc --loopback operations/about fs=/

    Use "rclone rc" to see a list of all possible commands.

    rclone rc commands parameter [flags]
    -

    Options

    +

    Options

      -a, --arg stringArray   Argument placed in the "arg" array
       -h, --help              help for rc
           --json string       Input JSON - use instead of key=value args
    @@ -2149,13 +2184,13 @@ if src is directory
           --url string        URL to connect to rclone remote control (default "http://localhost:5572/")
           --user string       Username to use to rclone remote control

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

    -

    SEE ALSO

    +

    SEE ALSO

    rclone rcat

    Copies standard input to file on remote.

    -

    Synopsis

    +

    Synopsis

    rclone rcat 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
    @@ -2165,48 +2200,48 @@ ffmpeg - | rclone rcat remote:path/to/file

    |--size| should be the exact size of the input stream in bytes. If the size of the stream is different in length to the |--size| passed in then the transfer will likely fail.

    Note that the upload can also not be retried because the data is not kept around until the upload succeeds. If you need to transfer a lot of data, you're better off caching locally and then rclone move it to the destination.

    rclone rcat remote:path [flags]
    -

    Options

    +

    Options

      -h, --help       help for rcat
           --size int   File size hint to preallocate (default -1)

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

    -

    SEE ALSO

    - -

    rclone rcd

    -

    Run rclone listening to remote control commands only.

    -

    Synopsis

    -

    This runs rclone so that it only listens to remote control commands.

    -

    This is useful if you are controlling rclone via the rc API.

    -

    If you pass in a path to a directory, rclone will serve that directory for GET requests on the URL passed in. It will also open the URL in the browser when rclone is run.

    -

    See the rc documentation for more info on the rc flags.

    -
    rclone rcd <path to files to serve>* [flags]
    -

    Options

    -
      -h, --help   help for rcd
    -

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

    SEE ALSO

    -

    rclone rmdirs

    -

    Remove empty directories under the path.

    +

    rclone rcd

    +

    Run rclone listening to remote control commands only.

    Synopsis

    -

    This recursively removes any empty directories (including directories that only contain empty directories), that it finds under the path. The root path itself will also be removed if it is empty, unless you supply the --leave-root flag.

    -

    Use command rmdir to delete just the empty directory given by path, not recurse.

    -

    This is useful for tidying up remotes that rclone has left a lot of empty directories in. For example the delete command will delete files but leave the directory structure (unless used with option --rmdirs).

    -

    To delete a path and any objects in it, use purge command.

    -
    rclone rmdirs remote:path [flags]
    +

    This runs rclone so that it only listens to remote control commands.

    +

    This is useful if you are controlling rclone via the rc API.

    +

    If you pass in a path to a directory, rclone will serve that directory for GET requests on the URL passed in. It will also open the URL in the browser when rclone is run.

    +

    See the rc documentation for more info on the rc flags.

    +
    rclone rcd <path to files to serve>* [flags]

    Options

    -
      -h, --help         help for rmdirs
    -      --leave-root   Do not remove root directory if empty
    +
      -h, --help   help for rcd

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

    SEE ALSO

    +

    rclone rmdirs

    +

    Remove empty directories under the path.

    +

    Synopsis

    +

    This recursively removes any empty directories (including directories that only contain empty directories), that it finds under the path. The root path itself will also be removed if it is empty, unless you supply the --leave-root flag.

    +

    Use command rmdir to delete just the empty directory given by path, not recurse.

    +

    This is useful for tidying up remotes that rclone has left a lot of empty directories in. For example the delete command will delete files but leave the directory structure (unless used with option --rmdirs).

    +

    To delete a path and any objects in it, use purge command.

    +
    rclone rmdirs remote:path [flags]
    +

    Options

    +
      -h, --help         help for rmdirs
    +      --leave-root   Do not remove root directory if empty
    +

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

    +

    SEE ALSO

    +

    rclone selfupdate

    Update the rclone binary.

    -

    Synopsis

    +

    Synopsis

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

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

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

    @@ -2216,7 +2251,7 @@ ffmpeg - | rclone rcat remote:path/to/file

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

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

    rclone selfupdate [flags]
    -

    Options

    +

    Options

          --beta             Install beta release
           --check            Check for latest release, do not download
       -h, --help             help for selfupdate
    @@ -2225,21 +2260,21 @@ ffmpeg - | rclone rcat remote:path/to/file
    --stable Install stable release (this is the default) --version string Install the given rclone version (default: latest)

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

    -

    SEE ALSO

    +

    SEE ALSO

    rclone serve

    Serve a remote over a protocol.

    -

    Synopsis

    +

    Synopsis

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

    rclone serve http remote:

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

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

    Options

    +

    Options

      -h, --help   help for serve

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

    -

    SEE ALSO

    +

    SEE ALSO

    rclone serve dlna

    Serve remote:path over DLNA

    -

    Synopsis

    +

    Synopsis

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

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

    Server options

    @@ -2359,7 +2394,7 @@ ffmpeg - | rclone rcat remote:path/to/file

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

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

    rclone serve dlna remote:path [flags]
    -

    Options

    +

    Options

          --addr string                            The ip:port or :port to bind the DLNA http server to (default ":7879")
           --dir-cache-time duration                Time to cache directory entries for (default 5m0s)
           --dir-perms FileMode                     Directory permissions (default 0777)
    @@ -2388,13 +2423,13 @@ ffmpeg - | rclone rcat remote:path/to/file
    --vfs-write-back duration Time to writeback files after last use when using cache (default 5s) --vfs-write-wait duration Time to wait for in-sequence write before giving error (default 1s)

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

    -

    SEE ALSO

    +

    SEE ALSO

    rclone serve docker

    Serve any remote on docker's volume plugin API.

    -

    Synopsis

    +

    Synopsis

    This command implements the Docker volume plugin API allowing docker to use rclone as a data storage mechanism for various cloud providers. rclone provides docker volume plugin based on it.

    To create a docker plugin, one must create a Unix or TCP socket that Docker will look for when you use the plugin and then it listens for 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
    @@ -2502,7 +2537,7 @@ ffmpeg - | rclone rcat remote:path/to/file

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

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

    rclone serve docker [flags]
    -

    Options

    +

    Options

          --allow-non-empty                        Allow mounting over a non-empty directory (not supported on Windows)
           --allow-other                            Allow access to other users (not supported on Windows)
           --allow-root                             Allow access to root user (not supported on Windows)
    @@ -2514,6 +2549,7 @@ ffmpeg - | rclone rcat remote:path/to/file
    --daemon-wait duration Time to wait for ready mount from daemon (maximum time on Linux, constant sleep time on OSX/BSD) (not supported on Windows) (default 1m0s) --debug-fuse Debug the FUSE internals - needs -v --default-permissions Makes kernel enforce access control based on the file mode (not supported on Windows) + --devname string Set the device name - default is remote:path --dir-cache-time duration Time to cache directory entries for (default 5m0s) --dir-perms FileMode Directory permissions (default 0777) --file-perms FileMode File permissions (default 0666) @@ -2551,13 +2587,13 @@ ffmpeg - | rclone rcat remote:path/to/file --volname string Set the volume name (supported on Windows and OSX only) --write-back-cache Makes kernel buffer writes before sending them to rclone (without this, writethrough caching is used) (not supported on Windows)

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

    -

    SEE ALSO

    +

    SEE ALSO

    rclone serve ftp

    Serve remote:path over FTP.

    -

    Synopsis

    +

    Synopsis

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

    Server options

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

    @@ -2695,7 +2731,7 @@ ffmpeg - | rclone rcat remote:path/to/file

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

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

    rclone serve ftp remote:path [flags]
    -

    Options

    +

    Options

          --addr string                            IPaddress:Port or :Port to bind server to (default "localhost:2121")
           --auth-proxy string                      A program to use to create the backend from the auth
           --cert string                            TLS PEM key (concatenation of certificate and CA certificate)
    @@ -2729,13 +2765,13 @@ ffmpeg - | rclone rcat remote:path/to/file
    --vfs-write-back duration Time to writeback files after last use when using cache (default 5s) --vfs-write-wait duration Time to wait for in-sequence write before giving error (default 1s)

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

    -

    SEE ALSO

    +

    SEE ALSO

    rclone serve http

    Serve the remote over HTTP.

    -

    Synopsis

    +

    Synopsis

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

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

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

    @@ -2748,7 +2784,9 @@ ffmpeg - | rclone rcat remote:path/to/file

    --baseurl controls the URL prefix that rclone serves from. By default rclone will serve from the root. If you used --baseurl "/rclone" then rclone would serve from a URL starting with "/rclone/". This is useful if you wish to proxy rclone serve. Rclone automatically inserts leading and trailing "/" on --baseurl, so --baseurl "rclone", --baseurl "/rclone" and --baseurl "/rclone/" are all treated identically.

    SSL/TLS

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

    -

    --cert should be a either a PEM encoded certificate or a concatenation of that with the CA certificate. --key should be the PEM encoded private key and --client-ca should be the PEM encoded client certificate authority certificate. --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:

    +

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

    +

    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:

    @@ -2938,7 +2976,7 @@ htpasswd -B htpasswd anotherUser

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

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

    rclone serve http remote:path [flags]
    -

    Options

    +

    Options

          --addr string                            IPaddress:Port or :Port to bind server to (default "127.0.0.1:8080")
           --baseurl string                         Prefix for URLs - leave blank for root
           --cert string                            SSL PEM key (concatenation of certificate and CA certificate)
    @@ -2978,15 +3016,15 @@ htpasswd -B htpasswd anotherUser
    --vfs-write-back duration Time to writeback files after last use when using cache (default 5s) --vfs-write-wait duration Time to wait for in-sequence write before giving error (default 1s)

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

    -

    SEE ALSO

    +

    SEE ALSO

    rclone serve restic

    Serve the remote for restic's REST API.

    -

    Synopsis

    +

    Synopsis

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

    -

    Restic is a command line program for doing backups.

    +

    Restic is a command-line program for doing backups.

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

    --bwlimit will be respected for file transfers. Use --stats to control the stats printing.

    Setting up rclone for use by restic

    @@ -3124,7 +3162,7 @@ htpasswd -B htpasswd anotherUser

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

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

    rclone serve restic remote:path [flags]
    -

    Options

    +

    Options

          --addr string                     IPaddress:Port or :Port to bind server to (default "localhost:8080")
           --append-only                     Disallow deletion of repository data
           --baseurl string                  Prefix for URLs - leave blank for root
    @@ -3137,20 +3175,20 @@ htpasswd -B htpasswd anotherUser
    --max-header-bytes int Maximum size of request header (default 4096) --pass string Password for authentication --private-repos Users can only access their private repo - --realm string realm for authentication (default "rclone") + --realm string Realm for authentication (default "rclone") --server-read-timeout duration Timeout for server reading data (default 1h0m0s) --server-write-timeout duration Timeout for server writing data (default 1h0m0s) --stdio Run an HTTP2 server on stdin/stdout --template string User-specified template --user string User name for authentication

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

    -

    SEE ALSO

    +

    SEE ALSO

    rclone serve sftp

    Serve the remote over SFTP.

    -

    Synopsis

    +

    Synopsis

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

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

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

    @@ -3162,6 +3200,8 @@ htpasswd -B htpasswd anotherUser

    Note that the default of "--vfs-cache-mode off" is fine for the rclone sftp backend, but it may not be with other SFTP 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 ...
    +

    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. This is the case because the client chooses indiscriminately which server to send commands to while the servers all have different views of the state of the filing system.

    +

    The "restrict" in authorized_keys prevents SHA1SUMs and MD5SUMs from beeing 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

    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.

    Cloud storage objects have lots of properties which aren't like disk files - you can't extend them or write to the middle of them, so the VFS layer has to deal with that. Because there is no one right way of doing this there are various options explained below.

    @@ -3292,7 +3332,7 @@ htpasswd -B htpasswd anotherUser

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

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

    rclone serve sftp remote:path [flags]
    -

    Options

    +

    Options

          --addr string                            IPaddress:Port or :Port to bind server to (default "localhost:2022")
           --auth-proxy string                      A program to use to create the backend from the auth
           --authorized-keys string                 Authorized keys file (default "~/.ssh/authorized_keys")
    @@ -3326,13 +3366,13 @@ htpasswd -B htpasswd anotherUser
    --vfs-write-back duration Time to writeback files after last use when using cache (default 5s) --vfs-write-wait duration Time to wait for in-sequence write before giving error (default 1s)

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

    -

    SEE ALSO

    +

    SEE ALSO

    rclone serve webdav

    Serve remote:path over webdav.

    -

    Synopsis

    +

    Synopsis

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

    Webdav options

    --etag-hash

    @@ -3567,7 +3607,7 @@ htpasswd -B htpasswd anotherUser

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

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

    rclone serve webdav remote:path [flags]
    -

    Options

    +

    Options

          --addr string                            IPaddress:Port or :Port to bind server to (default "localhost:8080")
           --auth-proxy string                      A program to use to create the backend from the auth
           --baseurl string                         Prefix for URLs - leave blank for root
    @@ -3589,7 +3629,7 @@ htpasswd -B htpasswd anotherUser
    --pass string Password for authentication --poll-interval duration Time to wait between polling for changes, must be smaller than dir-cache-time and only on supported remotes (set 0 to disable) (default 1m0s) --read-only Mount read-only - --realm string realm for authentication (default "rclone") + --realm string Realm for authentication (default "rclone") --server-read-timeout duration Timeout for server reading data (default 1h0m0s) --server-write-timeout duration Timeout for server writing data (default 1h0m0s) --template string User-specified template @@ -3609,13 +3649,13 @@ htpasswd -B htpasswd anotherUser --vfs-write-back duration Time to writeback files after last use when using cache (default 5s) --vfs-write-wait duration Time to wait for in-sequence write before giving error (default 1s)

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

    -

    SEE ALSO

    +

    SEE ALSO

    rclone settier

    Changes storage class/tier of objects in remote.

    -

    Synopsis

    +

    Synopsis

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

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

    You can use it to tier single object

    @@ -3625,25 +3665,25 @@ htpasswd -B htpasswd anotherUser

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

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

    Options

    +

    Options

      -h, --help   help for settier

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

    -

    SEE ALSO

    +

    SEE ALSO

    rclone test

    Run a test command

    -

    Synopsis

    +

    Synopsis

    Rclone test is used to run test commands.

    Select which test comand you want with the subcommand, eg

    rclone test memory remote:

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

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

    -

    Options

    +

    Options

      -h, --help   help for test

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

    -

    SEE ALSO

    +

    SEE ALSO

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

    rclone touch remote:path [flags]
    -

    Options

    +

    Options

      -h, --help               help for touch
           --localtime          Use localtime for timestamp, not UTC
       -C, --no-create          Do not create the file if it does not exist (implied with --recursive)
       -R, --recursive          Recursively touch all files
       -t, --timestamp string   Use specified time instead of the current time of day

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

    -

    SEE ALSO

    +

    SEE ALSO

    rclone tree

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

    -

    Synopsis

    +

    Synopsis

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

    For example

    $ rclone tree remote:path
    @@ -3766,14 +3806,13 @@ htpasswd -B htpasswd anotherUser

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

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

    rclone tree remote:path [flags]
    -

    Options

    +

    Options

      -a, --all             All files are listed (list . files too)
       -C, --color           Turn colorization on always
       -d, --dirs-only       List directories only
           --dirsfirst       List directories before files (-U disables)
           --full-path       Print the full path prefix for each file
       -h, --help            help for tree
    -      --human           Print the size in a more human readable way.
           --level int       Descend only level directories deep
       -D, --modtime         Print the date of last modification.
           --noindent        Don't print indentation lines
    @@ -3789,7 +3828,7 @@ htpasswd -B htpasswd anotherUser
    -U, --unsorted Leave files unsorted --version Sort files alphanumerically by version

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

    -

    SEE ALSO

    +

    SEE ALSO

    @@ -3847,7 +3886,7 @@ rclone copy :sftp,host=example.com:path/to/dir /tmp/dir

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

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

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

    -

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

    +

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

    rclone lsd :s3,env_auth:

    Which is equivalent to

    rclone lsd :s3,env_auth=true:
    @@ -3868,7 +3907,7 @@ rclone copy :sftp,host=example.com:path/to/dir /tmp/dir

    Will get their own names

    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: - May only contain 0-9, A-Z, a-z, _, - and space. - May not start with - or space.

    +

    Remote names are case sensitive, and must adhere to the following rules: - May only contain 0-9, A-Z, a-z, _, -, . and space. - May not start with - or space.

    Quoting and the shell

    When you are typing commands to your computer you are using something called the command line shell. This interprets various characters in an OS specific way.

    Here are some gotchas which may help users unfamiliar with the shell rules

    @@ -3901,7 +3940,7 @@ rclone copy :sftp,host=example.com:path/to/dir /tmp/dir

    This can be used when scripting to make aged backups efficiently, e.g.

    rclone sync -i remote:current-backup remote:previous-backup
     rclone sync -i /path/to/files remote:current-backup
    -

    Options

    +

    Options

    Rclone has a number of options to control its behaviour.

    Options that take parameters can have the values passed in two ways, --option=value or --option value. However boolean (true/false) options behave slightly differently to the other options in that --boolean sets the option to true and the absence of the flag sets it to false. It is also possible to specify --boolean=false or --boolean=true. Note that --boolean false is not valid - this is parsed as --boolean and the false is parsed as an extra command line argument for rclone.

    Options which use TIME use the go time parser. A duration string is a possibly signed sequence of decimal numbers, each with optional fraction and a unit suffix, such as "300ms", "-1.5h" or "2h45m". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".

    @@ -3943,7 +3982,7 @@ rclone sync -i /path/to/files remote:current-backup

    --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"

    -

    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 tardigrade).

    +

    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 storj).

    Note that the units are Byte/s, not bit/s. Typically connections are measured in bit/s - to convert divide by 8. For example, let's say you have a 10 Mbit/s connection and you wish rclone to use half of it - 5 Mbit/s. This is 5/8 = 0.625 MiB/s so you would use a --bwlimit 0.625M parameter for rclone.

    On Unix systems (Linux, macOS, …) the bandwidth limiter can be toggled by sending a SIGUSR2 signal to rclone. This allows 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)
    @@ -4038,6 +4077,8 @@ pass = PDPcQVVjVtzFY-GTdDFozqBhTdsPg3qH
    --disable help

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

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

    +

    --disable-http2

    +

    This stops rclone from trying to use HTTP/2 if available. This can sometimes speed up transfers due to a problem in the Go standard library.

    --dscp VALUE

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

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

    @@ -4338,10 +4379,10 @@ y/n/s/!/q> n

    --tpslimit float

    Limit transactions per second to this number. Default is 0 which is used to mean unlimited transactions per second.

    A transaction is roughly defined as an API call; its exact meaning will depend on the backend. For HTTP based backends it is an HTTP PUT/GET/POST/etc and its response. For FTP/SFTP it is a round trip transaction over TCP.

    -

    For example to limit rclone to 10 transactions per second use --tpslimit 10, or to 1 transaction every 2 seconds use --tpslimit 0.5.

    +

    For example, to limit rclone to 10 transactions per second use --tpslimit 10, or to 1 transaction every 2 seconds use --tpslimit 0.5.

    Use this when the number of transactions per second from rclone is causing a problem with the cloud storage provider (e.g. getting you banned or rate limited).

    This can be very useful for rclone mount to control the behaviour of applications using it.

    -

    This limit applies to all HTTP based backends and to the FTP and SFTP backends. It does not apply to the local backend or the Tardigrade backend.

    +

    This limit applies to all HTTP based backends and to the FTP and SFTP backends. It does not apply to the local backend or the Storj backend.

    See also --tpslimit-burst.

    --tpslimit-burst int

    Max burst of transactions for --tpslimit (default 1).

    @@ -4376,7 +4417,7 @@ y/n/s/!/q> n

    Specifying --delete-after (the default value) will delay deletion of files until all new/updated files have been successfully transferred. The files to be deleted are collected in the copy pass then deleted after the copy pass has completed successfully. The files to be deleted are held in memory so this mode may use more memory. This is the safest mode as it will only delete files if there have been no errors subsequent to that. If there have been errors before the deletions start then you will get the message not deleting files as there were IO errors.

    --fast-list

    When doing anything which involves a directory listing (e.g. sync, copy, ls - in fact nearly every command), rclone normally lists a directory and processes it before using more directory lists to process any subdirectories. This can be parallelised and works very quickly using the least amount of memory.

    -

    However, some remotes have a way of listing all files beneath a directory in one (or a small number) of transactions. These tend to be the bucket based remotes (e.g. S3, B2, GCS, Swift, Hubic).

    +

    However, some remotes have a way of listing all files beneath a directory in one (or a small number) of transactions. These tend to be the bucket-based remotes (e.g. S3, B2, GCS, Swift, Hubic).

    If you use the --fast-list flag then rclone will use this method for listing directories. This will have the following consequences for the listing:

    Environment Variables

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

    -

    Options

    +

    Options

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

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

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

    @@ -4591,7 +4633,7 @@ $ rclone lsd MYS3:
  • Parameters in connection strings, e.g. myRemote,skip_links:
  • Flag values as supplied on the command line, e.g. --skip-links
  • Remote specific environment vars, e.g. RCLONE_CONFIG_MYREMOTE_SKIP_LINKS (see above).
  • -
  • Backend specific environment vars, e.g. RCLONE_LOCAL_SKIP_LINKS.
  • +
  • Backend-specific environment vars, e.g. RCLONE_LOCAL_SKIP_LINKS.
  • Backend generic environment vars, e.g. RCLONE_SKIP_LINKS.
  • Config file, e.g. skip_links = true.
  • Default values, e.g. false - these can't be changed.
  • @@ -4682,6 +4724,7 @@ Configuration file is stored at:

    Important Avoid mixing any two of --include..., --exclude... or --filter... flags in an rclone command. The results may not be what you expect. Instead use a --filter... flag.

    Patterns for matching path/file names

    Pattern syntax

    +

    Here is a formal definition of the pattern syntax, examples are below.

    Rclone matching rules follow a glob style:

    *         matches any sequence of non-separator (/) characters
     **        matches any sequence of characters including / separators
    @@ -4690,8 +4733,10 @@ Configuration file is stored at:
               character class (must be non-empty)
     { pattern-list }
               pattern alternatives
    +{{ regexp }}
    +          regular expression to match
     c         matches character c (c != *, **, ?, \, [, {, })
    -\c        matches reserved character c (c = *, **, ?, \, [, {, })
    +\c matches reserved character c (c = *, **, ?, \, [, {, }) or character class

    character-range:

    c         matches character c (c != \, -, ])
     \c        matches reserved character c (c = \, -, ])
    @@ -4703,6 +4748,8 @@ lo - hi   matches character c for lo <= c <= hi
    Named character classes (e.g. [\d], [^\d], [\D], [^\D])
     Perl character classes (e.g. \s, \S, \w, \W)
     ASCII character classes (e.g. [[:alnum:]], [[:alpha:]], [[:punct:]], [[:xdigit:]])
    +

    regexp for advanced users to insert a regular expression - see below for more info:

    +
    Any re2 regular expression not containing `}}`

    If the filter pattern starts with a / then it only matches at the top level of the directory tree, relative to the root of the remote (not necessarily the root of the drive). If it does not start with / then it is matched starting at the end of the path/file name but it only matches a complete path element - it must match from a / separator or the beginning of the path/file.

    file.jpg   - matches "file.jpg"
                - matches "directory/file.jpg"
    @@ -4731,6 +4778,155 @@ ASCII character classes (e.g. [[:alnum:]], [[:alpha:]], [[:punct:]], [[:xdigit:]
     

    With --ignore-case

    potato - matches "potato"
            - matches "POTATO"
    +

    Using regular expressions in filter patterns

    +

    The syntax of filter patterns is glob style matching (like 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 Go regular expression reference. Regular expressions should be enclosed in {{ }}. They will match only the last path segment if the glob doesn't start with / or the whole path name if it does.

    +

    Here is how the {{regexp}} is transformed into an full regular expression to match the entire path:

    +
    {{regexp}}  becomes (^|/)(regexp)$
    +/{{regexp}} becomes ^(regexp)$
    +

    Regexp syntax can be mixed with glob syntax, for example

    +
    *.{{jpe?g}} to match file.jpg, file.jpeg but not file.png
    +

    You can also use regexp flags - to set case insensitive, for example

    +
    *.{{(?i)jpg}} to match file.jpg, file.JPG but not file.png
    +

    Be careful with wildcards in regular expressions - you don't want them to match path separators normally. To match any file name starting with start and ending with end write

    +
    {{start[^/]*end\.jpg}}
    +

    Not

    +
    {{start.*end\.jpg}}
    +

    Which will match a directory called start with a file called end.jpg in it as the .* will match / characters.

    +

    Note that you can use -vv --dump filters to show the filter patterns in regexp format - rclone implements the glob patters by transforming them into regular expressions.

    +

    Filter pattern examples

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    DescriptionPatternMatchesDoes not match
    Wildcard*.jpg/file.jpg/file.png
    /dir/file.jpg/dir/file.png
    Rooted/*.jpg/file.jpg/file.png
    /file2.jpg/dir/file.jpg
    Alternates*.{jpg,png}/file.jpg/file.gif
    /dir/file.gif/dir/file.gif
    Path Wildcarddir/**/dir/anyfilefile.png
    /subdir/dir/subsubdir/anyfile/subdir/file.png
    Any Char*.t?t/file.txt/file.qxt
    /dir/file.tzt/dir/file.png
    Range*.[a-z]/file.a/file.0
    /dir/file.b/dir/file.1
    Escape*.\?\?\?/file.???/file.abc
    /dir/file.???/dir/file.def
    Class*.\d\d\d/file.012/file.abc
    /dir/file.345/dir/file.def
    Regexp*.{{jpe?g}}/file.jpeg/file.png
    /dir/file.jpg/dir/file.jpeeg
    Rooted Regexp/{{.*\.jpe?g}}/file.jpeg/file.png
    /file.jpg/dir/file.jpg

    How filter rules are applied to files

    Rclone path/file name filters are made up of one or more of the following flags: