neulab/tldr huggingface dataset:
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.
rclone copyto src dst
where src and dst are rclone paths, either remote:path or /path/to/local or C:.
This will:
if src is file copy it to dst, overwriting an existing file if it exists if src is directory copy it to dst, overwriting existing files if they exist see copy command for full details
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.
rclone copyto source:path dest:path [flags]
Options -h, --help   help for copyto
rclone copyurl Copy url content to dest.
Synopsis Download a URL's content and copy it to the destination without saving it in temporary storage.
Setting --auto-filename will cause the file name to be retrieved from the 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 -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
rclone cryptcheck Cryptcheck checks the integrity of a crypted remote.
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.
Use it like this
rclone cryptcheck /path/to/files encryptedremote:path
You can use it like this also, but that will involve downloading all the files in remote:path.
rclone cryptcheck remote:path encryptedremote:path
After it has run it will log the status of the encryptedremote:.
rclone cryptcheck remote:path cryptedremote:path [flags]
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 -h, --help                    help for cryptcheck --match string            Report all matching files to this file --missing-on-dst string   Report all files missing from the destination to this file --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
rclone cryptdecode Cryptdecode returns unencrypted file names.
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
rclone cryptdecode encryptedremote: encryptedfilename1 encryptedfilename2
rclone cryptdecode --reverse encryptedremote: filename1 filename2
Another way to accomplish this is by using the rclone backend encode (or decode)command.  See the documentation on the crypt overlay for more info.
rclone cryptdecode encryptedremote: encryptedfilename [flags]
Options -h, --help      help for cryptdecode --reverse   Reverse cryptdecode, encrypts filenames
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
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
• rclone genautocomplete bash (https://rclone.org/commands/rclone_genautocomplete_bash/) - Output bash completion script for rclone.
• rclone genautocomplete fish (https://rclone.org/commands/rclone_genautocomplete_fish/) - Output fish completion script for rclone.
• rclone genautocomplete zsh (https://rclone.org/commands/rclone_genautocomplete_zsh/) - Output zsh completion script for rclone.
rclone genautocomplete bash Output bash completion script for rclone.
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
Logout and login again to use the autocompletion scripts, or source them directly
. /etc/bash_completion
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 -h, --help   help for bash
SEE ALSO • rclone genautocomplete (https://rclone.org/commands/rclone_genautocomplete/) - Output completion script for a given shell.
rclone genautocomplete fish Output fish completion script for rclone.
Synopsis Generates a fish autocompletion script for rclone.
This writes to /etc/fish/completions/rclone.fish by default so will probably need to be run with sudo or as root, e.g.
sudo rclone genautocomplete fish
. /etc/fish/completions/rclone.fish
rclone genautocomplete fish [output_file] [flags]
Options -h, --help   help for fish
rclone genautocomplete zsh Output zsh completion script for rclone.
Synopsis Generates a zsh autocompletion script for rclone.
This writes to /usr/share/zsh/vendor-completions/_rclone by default so will probably need to be run with sudo or as root, e.g.
sudo rclone genautocomplete zsh
autoload -U compinit && compinit
rclone genautocomplete zsh [output_file] [flags]
Options -h, --help   help for zsh
rclone gendocs Output markdown docs for rclone to the directory supplied.
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 -h, --help   help for gendocs
rclone hashsum Produces a hashsum file for all the objects in the path.
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.
Run without a hash to see the list of all supported hashes, e.g.
$ rclone hashsum Supported hashes are: * md5 * sha1 * whirlpool * crc32 * sha256 * dropbox * mailru * quickxor
$ 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 --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
rclone link Generate public link to file/folder.
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/ rclone link --unlink remote:path/to/folder/ rclone link --expire 1d remote:path/to/file
If you supply the --expire flag, it will set the expiration time otherwise it will use the default (100 years).  Note not all backends support the --expire flag - if the backend doesn't support it then the link returned won't expire.
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 --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
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
rclone lsf List directories and objects in remote:path formatted for parsing.
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.
$ rclone lsf swift:bucket bevajer5jef canole diwogej7 ferejej3gux/ fubuwic
Use the --format option to control what gets listed.  By default this is just the path, but you can use these parameters to control the output:
p - path s - size t - modification time h - hash i - ID of object o - Original ID of underlying object m - MimeType of object if known e - encrypted name T - tier of storage if known, e.g. "Hot" or "Cool"
So if you wanted the path, size and modification time, you would use --format "pst", or maybe --format "tsp" to put the path last.
$ rclone lsf  --format "tsp" swift:bucket 2016-06-25 18:55:41;60295;bevajer5jef 2016-06-25 18:55:43;90613;canole 2016-06-25 18:55:43;94467;diwogej7 2018-04-26 08:50:45;0;ferejej3gux/ 2016-06-25 18:55:40;37600;fubuwic
If you specify "h" in the format you will get the MD5 hash by default, use the "--hash" flag to change which hash you want.  Note that this can be returned as an empty string if it isn't available on the object (and for directories), "ERROR" if there was an error reading it from the object and "UNSUPPORTED" if that object does not support that hash type.
For example to emulate the md5sum command you can use
rclone lsf -R --hash MD5 --format hp --separator "  " --files-only .
$ rclone lsf -R --hash MD5 --format hp --separator "  " --files-only swift:bucket 7908e352297f0f530b84a756f188baa3  bevajer5jef cd65ac234e6fea5925974a51cdd865cc  canole 03b5341b4f234b9d984d03ad076bae91  diwogej7 8fd37c3810dd660778137ac3a66cc06d  fubuwic 99713e14a4c4ff553acaf1930fad985b  gixacuh7ku
(Though "rclone md5sum ." is an easier way of typing this.)
By default the separator is ";" this can be changed with the --separator flag.  Note that separators aren't escaped in the path so putting it last is a good strategy.
$ rclone lsf  --separator "," --format "tshp" swift:bucket 2016-06-25 18:55:41,60295,7908e352297f0f530b84a756f188baa3,bevajer5jef 2016-06-25 18:55:43,90613,cd65ac234e6fea5925974a51cdd865cc,canole 2016-06-25 18:55:43,94467,03b5341b4f234b9d984d03ad076bae91,diwogej7 2018-04-26 08:52:53,0,,ferejej3gux/ 2016-06-25 18:55:40,37600,8fd37c3810dd660778137ac3a66cc06d,fubuwic
You can output in CSV standard format.  This will escape things in " if they contain ,
$ rclone lsf --csv --files-only --format ps remote:path test.log,22355 test.sh,449 "this file contains a comma, in the file name.txt",6
Note that the --absolute parameter is useful for making lists of files to pass to an rclone copy with the --files-from-raw flag.
For example to find all the files modified within one day and copy those only (without traversing the whole directory structure):
rclone lsf --absolute --files-only --max-age 1d /path/to/local > new_files rclone copy --files-from-raw new_files /path/to/local remote:path
rclone lsf remote:path [flags]
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) --dirs-only          Only list directories --files-only         Only list files -F, --format string      Output format - see  help for details (default "p") --hash h             Use this hash when h is used in the format MD5|SHA-1|DropboxHash (default "md5") -h, --help               help for lsf -R, --recursive          Recurse into the listing -s, --separator string   Separator for the items in the format (default ";")
rclone lsjson List directories and objects in the path in JSON format.
Synopsis List directories and objects in the path in JSON format.
The output is an array of Items, where each Item looks like this
{ "Hashes" : { "SHA-1" : "f572d396fae9206628714fb2ce00f72e94f2258f", "MD5" : "b1946ac92492d2347c6235b4d2611184", "DropboxHash" : "ecb65bb98f9d905b70458986c39fcbad7715e5f2fcc3b1f07767d7c83e2438cc" }, "ID": "y2djkhiujf83u33", "OrigID": "UYOJVTUW00Q1RzTDA", "IsBucket" : false, "IsDir" : false, "MimeType" : "application/octet-stream", "ModTime" : "2017-05-31T16:15:57.034468261+01:00", "Name" : "file.txt", "Encrypted" : "v0qpsdq8anpci8n929v3uu9338", "EncryptedPath" : "kja9098349023498/v0qpsdq8anpci8n929v3uu9338", "Path" : "full/path/goes/here/file.txt", "Size" : 6, "Tier" : "hot", }
If --hash is not specified the Hashes property won't be emitted.  The types of hash can be specified with the --hash-type parameter (which may be repeated).  If --hash-type is set then it implies --hash.
If --no-modtime is specified then ModTime will be blank.  This can speed things up on remotes where reading the ModTime takes an extra request (e.g.  s3, swift).
If --no-mimetype is specified then MimeType will be blank.  This can speed things up on remotes where reading the MimeType takes an extra request (e.g.  s3, swift).
If --encrypted is not specified the Encrypted won't be emitted.
If --dirs-only is not specified files in addition to directories are returned
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".
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.
rclone lsjson remote:path [flags]
Options --dirs-only               Show only directories in the listing -M, --encrypted               Show the encrypted names --files-only              Show only files in the listing --hash                    Include hashes in the output (may take longer) --hash-type stringArray   Show only this hash type (may be repeated) -h, --help                    help for lsjson --no-mimetype             Don't read the mime type (can speed things up) --no-modtime              Don't read the modification time (can speed things up) --original                Show the ID of the underlying Object -R, --recursive               Recurse into the listing --stat                    Just return the info for the pointed to file
rclone mount Mount the remote as file system on a mountpoint.
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.
In background mode rclone acts as a generic Unix mount program: the main program starts, spawns background rclone process to setup and maintain the mount, waits until success or timeout and exits with appropriate code (killing the child process if it fails).
On Linux/macOS/FreeBSD start the mount like this, where /path/to/local/mount is an empty existing directory:
rclone mount remote:path/to/files /path/to/local/mount
On Windows you can start a mount in different ways.  See below for details.  If foreground mount is used interactively from a console window, rclone will serve the mount and occupy the console so another window should be used to work with the mount until rclone is interrupted e.g.  by pressing Ctrl-C.
The following examples will mount to an automatically assigned drive, to specific drive letter X:, to path C:\path\parent\mount (where parent directory or drive must exist, and mount must not exist, and is not supported when mounting as a network drive), and the last example will mount as network share \\cloud\remote and map it to an automatically assigned drive:
rclone mount remote:path/to/files * rclone mount remote:path/to/files X: rclone mount remote:path/to/files C:\path\parent\mount rclone mount remote:path/to/files \\cloud\remote
When the program ends while in foreground mode, either via Ctrl+C or receiving a SIGINT or SIGTERM signal, the mount should be automatically stopped.
When running in background mode the user will have to stop the mount manually:
# Linux fusermount -u /path/to/local/mount # OS X umount /path/to/local/mount
The umount operation can fail, for example when the mountpoint is busy. When that happens, it is the user's responsibility to stop the mount manually.
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 (https://rclone.org/commands/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 (https://rclone.org/overview/#optional-features) 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 (http://www.secfs.net/winfsp/).
WinFsp (https://github.com/billziss-gh/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 (https://github.com/billziss-gh/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.
When mounting as a fixed disk drive you can either mount to an unused drive letter, or to a path representing a non-existent subdirectory of an existing parent directory or drive.  Using the special value * will tell rclone to automatically assign the next available drive letter, starting with Z: and moving backward.  Examples:
rclone mount remote:path/to/files * rclone mount remote:path/to/files X: rclone mount remote:path/to/files C:\path\parent\mount rclone mount remote:path/to/files X:
Option --volname can be used to set a custom volume name for the mounted file system.  The default is to use the remote name and path.
To mount as network drive, you can add option --network-mode to your mount command.  Mounting to a directory path is not supported in this mode, it is a limitation Windows imposes on junctions, so the remote must always be mounted to a drive letter.
rclone mount remote:path/to/files X: --network-mode
A volume name specified with --volname will be used to create the network share path.  A complete UNC path, such as \\cloud\remote, optionally with path \\cloud\remote\madeup\path, will be used as is.  Any other string will be used as the share part, after a default prefix \\server\.  If no volume name is specified then \\server\share will be used.  You must make sure the volume name is unique when you are mounting more than one drive, or else the mount command will fail.  The share name will treated as the volume label for the mapped drive, shown in Windows Explorer etc, while the complete \\server\share will be reported as the remote UNC path by net use etc, just like a normal network drive mapping.
If you specify a full network share UNC path with --volname, this will implicitely set the --network-mode option, so the following two examples have same result:
rclone mount remote:path/to/files X: --network-mode rclone mount remote:path/to/files X: --volname \\server\share
You may also specify the network share UNC path as the mountpoint itself. Then rclone will automatically assign a drive letter, same as with * and use that as mountpoint, and instead use the UNC path specified as the volume name, as if it were specified with the --volname option.  This will also implicitely set the --network-mode option.  This means the following two examples have same result:
rclone mount remote:path/to/files \\cloud\remote rclone mount remote:path/to/files * --volname \\cloud\remote
There is yet another way to enable network mode, and to set the share path, and that is to pass the "native" libfuse/WinFsp option directly: --fuse-flag --VolumePrefix=\server\share.  Note that the path must be with just a single backslash prefix in this case.
Note: In previous versions of rclone this was the only supported method.
Read more about drive mapping (https://en.wikipedia.org/wiki/Drive_mapping)
See also Limitations section below.
Windows filesystem permissions The FUSE emulation layer on Windows must convert between the POSIX-based permission model used in FUSE, and the permission model used in Windows, based on access-control lists (ACL).
The mounted filesystem will normally get three entries in its access-control list (ACL), representing permissions for the POSIX permission scopes: Owner, group and others.  By default, the owner and group will be taken from the current user, and the built-in group "Everyone" will be used to represent others.  The user/group can be customized with FUSE options "UserName" and "GroupName", e.g.  -o UserName=user123 -o GroupName="Authenticated Users".  The permissions on each entry will be set according to options --dir-perms and --file-perms, which takes a value in traditional numeric notation (https://en.wikipedia.org/wiki/File-system_permissions#Numeric_notation).
The default permissions corresponds to --file-perms 0666 --dir-perms 0777, i.e.  read and write permissions to everyone.  This means you will not be able to start any programs from the the mount.  To be able to do that you must add execute permissions, e.g.  --file-perms 0777 --dir-perms 0777 to add it to everyone.  If the program needs to write files, chances are you will have to enable VFS File Caching as well (see also limitations).
Note that the mapping of permissions is not always trivial, and the result you see in Windows Explorer may not be exactly like you expected. For example, when setting a value that includes write access, this will be mapped to individual permissions "write attributes", "write data" and "append data", but not "write extended attributes".  Windows will then show this as basic permission "Special" instead of "Write", because "Write" includes the "write extended attributes" permission.
If you set POSIX permissions for only allowing access to the owner, using --file-perms 0600 --dir-perms 0700, the user group and the built-in "Everyone" group will still be given some special permissions, such as "read attributes" and "read permissions", in Windows.  This is done for compatibility reasons, e.g.  to allow users without additional permissions to be able to read basic metadata about files like in UNIX. One case that may arise is that other programs (incorrectly) interprets this as the file being accessible by everyone.  For example an SSH client may warn about "unprotected private key file".
WinFsp 2021 (version 1.9) introduces a new FUSE option "FileSecurity", that allows the complete specification of file security descriptors using SDDL (https://docs.microsoft.com/en-us/windows/win32/secauthz/security- descriptor-string-format).  With this you can work around issues such as the mentioned "unprotected private key file" by specifying -o FileSecurity="D:P(A;;FA;;;OW)", for file all access (FA) to the owner (OW).
Windows caveats Drives created as Administrator are not visible to other accounts, not even an account that was elevated to Administrator with the User Account Control (UAC) feature.  A result of this is that if you mount to a drive letter from a Command Prompt run as Administrator, and then try to access the same drive from Windows Explorer (which does not run as Administrator), you will not be able to see the mounted drive.
If you don't need to access the drive from applications running with administrative privileges, the easiest way around this is to always create the mount from a non-elevated command prompt.
To make mapped drives available to the user account that created them regardless if elevated or not, there is a special Windows setting called linked connections (https://docs.microsoft.com/en- us/troubleshoot/windows-client/networking/mapped-drives-not-available- from-elevated-command#detail-to-configure-the-enablelinkedconnections- registry-entry) that can be enabled.
It is also possible to make a drive mount available to everyone on the system, by running the process creating it as the built-in SYSTEM account.  There are several ways to do this: One is to use the command-line utility PsExec (https://docs.microsoft.com/en- us/sysinternals/downloads/psexec), from Microsoft's Sysinternals suite, which has option -s to start processes as the SYSTEM account.  Another alternative is to run the mount command from a Windows Scheduled Task, or a Windows Service, configured to run as the SYSTEM account.  A third alternative is to use the WinFsp.Launcher infrastructure (https://github.com/billziss-gh/winfsp/wiki/WinFsp-Service- Architecture)).  Note that when running rclone as another user, it will not use the configuration file from your profile unless you tell it to with the --config (https://rclone.org/docs/#config-config-file) option. Read more in the install documentation (https://rclone.org/install/).
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.
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 File systems expect things to be 100% reliable, whereas cloud storage systems are a long way from 100% reliable.  The rclone sync/copy commands cope with this with lots of retries.  However rclone mount can't use retries in the same way without making local copies of the uploads.  Look at the VFS File Caching for solutions to make mount more reliable.
Attribute caching You can use the flag --attr-timeout to set the time the kernel caches the attributes (size, modification time, etc.) for directory entries.
The default is 1s which caches files just long enough to avoid too many callbacks to rclone from the kernel.
In theory 0s should be the correct value for filesystems which can change outside the control of the kernel.  However this causes quite a few problems such as rclone using too much memory (https://github.com/rclone/rclone/issues/2157), rclone not serving files to samba (https://forum.rclone.org/t/rclone-1-39-vs-1-40-mount- issue/5112) and excessive time listing directories (https://github.com/rclone/rclone/issues/2095#issuecomment-371141147).
The kernel can cache the info about a file for the time given by --attr-timeout.  You may see corruption if the remote file changes length during this window.  It will show up as either a truncated file or a file with garbage on the end.  With --attr-timeout 1s this is very unlikely but not impossible.  The higher you set --attr-timeout the more likely it is.  The default setting of "1s" is the lowest setting which mitigates the problems above.
If you set it higher (10s or 1m say) then the kernel will call back to rclone less often making it more efficient, however there is more chance of the corruption issue above.
If files don't change on the remote outside of the control of rclone then there is no chance of corruption.
This is the same as setting the attr_timeout option in mount.fuse.
Filters Note that all the rclone filters can be used to select a subset of the files to be visible in the mount.
systemd When running rclone mount as a systemd service, it is possible to use Type=notify.  In this case the service will enter the started state after the mountpoint has been successfully set up.  Units having the rclone mount service specified as a requirement will see all files and folders immediately in this mode.
Note that systemd runs mount units without any environment variables including PATH or HOME.  This means that tilde (~) expansion will not work and you should provide --config and --cache-dir explicitly as absolute paths via rclone arguments.  Since mounting requires the fusermount program, rclone will use the fallback PATH of /bin:/usr/bin in this scenario.  Please ensure that fusermount is present on this PATH.
Rclone as Unix mount helper The core Unix program /bin/mount normally takes the -t FSTYPE argument then runs the /sbin/mount.FSTYPE helper program passing it mount options as -o key=val,... or --opt=....  Automount (classic or systemd) behaves in a similar way.
rclone by default expects GNU-style flags --key val.  To run it as a mount helper you should symlink rclone binary to /sbin/mount.rclone and optionally /usr/bin/rclonefs, e.g.  ln -s /usr/bin/rclone /sbin/mount.rclone.  rclone will detect it and translate command-line arguments appropriately.
Now you can run classic mounts like this:
mount sftp1:subdir /mnt/data -t rclone -o vfs_cache_mode=writes,sftp_key_file=/path/to/pem
or create systemd mount units:
# /etc/systemd/system/mnt-data.mount [Unit] After=network-online.target [Mount] Type=rclone What=sftp1:subdir Where=/mnt/data Options=rw,allow_other,args2env,vfs-cache-mode=writes,config=/etc/rclone.conf,cache-dir=/var/rclone
optionally accompanied by systemd automount unit
# /etc/systemd/system/mnt-data.automount [Unit] After=network-online.target Before=remote-fs.target [Automount] Where=/mnt/data TimeoutIdleSec=600 [Install] WantedBy=multi-user.target
or add in /etc/fstab a line like
sftp1:subdir /mnt/data rclone rw,noauto,nofail,_netdev,x-systemd.automount,args2env,vfs_cache_mode=writes,config=/etc/rclone.conf,cache_dir=/var/cache/rclone 0 0
or use classic Automountd.  Remember to provide explicit config=...,cache-dir=... as a workaround for mount units being run without HOME.
Rclone in the mount helper mode will split -o argument(s) by comma, replace _ by - and prepend -- to get the command-line flags.  Options containing commas or spaces can be wrapped in single or double quotes. Any inner quotes inside outer quotes of the same type should be doubled.
Mount option syntax includes a few extra options treated specially:
• env.NAME=VALUE will set an environment variable for the mount process. This helps with Automountd and Systemd.mount which don't allow setting custom environment for mount helpers.  Typically you will use env.HTTPS_PROXY=proxy.host:3128 or env.HOME=/root
• command=cmount can be used to run cmount or any other rclone command rather than the default mount.
• args2env will pass mount options to the mount helper running in background via environment variables instead of command line arguments. This allows to hide secrets from such commands as ps or pgrep.
• vv... will be transformed into appropriate --verbose=N
• standard mount options like x-systemd.automount, _netdev, nosuid and alike are intended only for Automountd and ignored by rclone.
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.
The VFS layer also implements a directory cache - this caches info about files and directories (but not the data) in memory.
VFS Directory Cache Using the --dir-cache-time flag, you can control how long a directory should be considered up to date and not refreshed from the backend. Changes made through the mount will appear immediately or invalidate the cache.
--dir-cache-time duration   Time to cache directory entries for (default 5m0s) --poll-interval duration    Time to wait between polling for changes. Must be smaller than dir-cache-time. Only on supported remotes. Set to 0 to disable (default 1m0s)
However, changes made directly on the cloud storage by the web interface or a different copy of rclone will only be picked up once the directory cache expires if the backend configured does not support polling for changes.  If the backend supports polling, changes will be picked up within the polling interval.
You can send a SIGHUP signal to rclone for it to flush all directory caches, regardless of how old they are.  Assuming only one rclone instance is running, you can reset the cache like this:
kill -SIGHUP $(pidof rclone)
If you configure rclone with a remote control (/rc) then you can use rclone rc to flush the whole directory cache:
rclone rc vfs/forget
Or individual files or directories:
rclone rc vfs/forget file=path/to/file dir=path/to/dir
VFS File Buffering The --buffer-size flag determines the amount of memory, that will be used to buffer data in advance.
Each open file will try to keep the specified amount of data in memory at all times.  The buffered data is bound to one open file and won't be shared.
This flag is a upper limit for the used memory per open file.  The buffer will only use memory for data that is downloaded but not not yet read. If the buffer is empty, only a small amount of memory will be used.
The maximum memory used by rclone for buffering can be up to --buffer-size * open files.
VFS File Caching These flags control the VFS file caching options.  File caching is necessary to make the VFS layer appear compatible with a normal file system.  It can be disabled at the cost of some compatibility.
For example you'll need to enable VFS caching if you want to read and write simultaneously to a file.  See below for more details.
Note that the VFS cache is separate from the cache backend and you may find that you need one or the other or both.
--cache-dir string                   Directory rclone will use for caching. --vfs-cache-mode CacheMode           Cache mode off|minimal|writes|full (default off) --vfs-cache-max-age duration         Max age of objects in the cache (default 1h0m0s) --vfs-cache-max-size SizeSuffix      Max total size of objects in the cache (default off) --vfs-cache-poll-interval duration   Interval to poll the cache for stale objects (default 1m0s) --vfs-write-back duration            Time to writeback files after last use when using cache (default 5s)
If run with -vv rclone will print the location of the file cache.  The files are stored in the user cache file area which is OS dependent but can be controlled with --cache-dir or setting the appropriate environment variable.
The cache has 4 different modes selected by --vfs-cache-mode.  The higher the cache mode the more compatible rclone becomes at the cost of using disk space.
Note that files are written back to the remote only when they are closed and if they haven't been accessed for --vfs-write-back seconds.  If rclone is quit or dies with files that haven't been uploaded, these will be uploaded next time rclone is run with the same flags.
If using --vfs-cache-max-size note that the cache may exceed this size for two reasons.  Firstly because it is only checked every --vfs-cache-poll-interval.  Secondly because open files cannot be evicted from the cache.
You should not run two copies of rclone using the same VFS cache with the same or overlapping remotes if using --vfs-cache-mode > off.  This can potentially cause data corruption if you do.  You can work around this by giving each rclone its own cache hierarchy with --cache-dir.  You don't need to worry about this if the remotes in use don't overlap.
--vfs-cache-mode off In this mode (the default) the cache will read directly from the remote and write directly to the remote without caching anything on disk.
This will mean some operations are not possible
• Files can't be opened for both read AND write
• Files opened for write can't be seeked
• Existing files opened for write must have O_TRUNC set
• Files open for read with O_TRUNC will be opened write only
• Files open for write only will behave as if O_TRUNC was supplied
• Open modes O_APPEND, O_TRUNC are ignored
• If an upload fails it can't be retried
--vfs-cache-mode minimal This is very similar to "off" except that files opened for read AND write will be buffered to disk.  This means that files opened for write will be a lot more compatible, but uses the minimal disk space.
These operations are not possible
• Files opened for write only can't be seeked
• Files opened for write only will ignore O_APPEND, O_TRUNC
--vfs-cache-mode writes In this mode files opened for read only are still read directly from the remote, write only and read/write files are buffered to disk first.
This mode should support all normal file system operations.
If an upload fails it will be retried at exponentially increasing intervals up to 1 minute.
--vfs-cache-mode full In this mode all reads and writes are buffered to and from disk.  When data is read from the remote this is buffered to disk as well.
In this mode the files in the cache will be sparse files and rclone will keep track of which bits of the files it has downloaded.
So if an application only reads the starts of each file, then rclone will only buffer the start of the file.  These files will appear to be their full size in the cache, but they will be sparse files with only the data that has been downloaded present in them.
This mode should support all normal file system operations and is otherwise identical to --vfs-cache-mode writes.
When reading a file rclone will read --buffer-size plus --vfs-read-ahead bytes ahead.  The --buffer-size is buffered in memory whereas the --vfs-read-ahead is buffered on disk.
When using this mode it is recommended that --buffer-size is not set too large and --vfs-read-ahead is set large if required.
IMPORTANT not all file systems support sparse files.  In particular FAT/exFAT do not.  Rclone will perform very badly if the cache directory is on a filesystem which doesn't support sparse files and it will log an ERROR message if one is detected.
VFS Chunked Reading When rclone reads files from a remote it reads them in chunks.  This means that rather than requesting the whole file rclone reads the chunk specified.  This can reduce the used download quota for some remotes by requesting only chunks from the remote that are actually read, at the cost of an increased number of requests.
These flags control the chunking:
--vfs-read-chunk-size SizeSuffix        Read the source objects in chunks (default 128M) --vfs-read-chunk-size-limit SizeSuffix  Max chunk doubling size (default off)
Rclone will start reading a chunk of size --vfs-read-chunk-size, and then double the size for each read.  When --vfs-read-chunk-size-limit is specified, and greater than --vfs-read-chunk-size, the chunk size for each open file will get doubled only until the specified value is reached.  If the value is "off", which is the default, the limit is disabled and the chunk size will grow indefinitely.
With --vfs-read-chunk-size 100M and --vfs-read-chunk-size-limit 0 the following parts will be downloaded: 0-100M, 100M-200M, 200M-300M, 300M-400M and so on.  When --vfs-read-chunk-size-limit 500M is specified, the result would be 0-100M, 100M-300M, 300M-700M, 700M-1200M, 1200M-1700M and so on.
Setting --vfs-read-chunk-size to 0 or "off" disables chunked reading.
VFS Performance These flags may be used to enable/disable features of the VFS for performance or other reasons.  See also the chunked reading feature.
In particular S3 and Swift benefit hugely from the --no-modtime flag (or use --use-server-modtime for a slightly different effect) as each read of the modification time takes a transaction.
--no-checksum     Don't compare checksums on up/download. --no-modtime      Don't read/write the modification time (can speed things up). --no-seek         Don't allow seeking in files. --read-only       Mount read-only.
Sometimes rclone is delivered reads or writes out of order.  Rather than seeking rclone will wait a short time for the in sequence read or write to come in.  These flags only come into effect when not using an on disk cache file.
--vfs-read-wait duration   Time to wait for in-sequence read before seeking (default 20ms) --vfs-write-wait duration  Time to wait for in-sequence write before giving error (default 1s)
When using VFS write caching (--vfs-cache-mode with value writes or full), the global flag --transfers can be set to adjust the number of parallel uploads of modified files from cache (the related global flag --checkers have no effect on mount).
--transfers int  Number of file transfers to run in parallel (default 4)
VFS Case Sensitivity Linux file systems are case-sensitive: two files can differ only by case, and the exact case must be used when opening a file.
File systems in modern Windows are case-insensitive but case-preserving: although existing files can be opened using any case, the exact case used to create the file is preserved and available for programs to query.  It is not allowed for two files in the same directory to differ only by case.
Usually file systems on macOS are case-insensitive.  It is possible to make macOS file systems case-sensitive but that is not the default.
The --vfs-case-insensitive mount flag controls how rclone handles these two cases.  If its value is "false", rclone passes file names to the mounted file system as-is.  If the flag is "true" (or appears without a value on command line), rclone may perform a "fixup" as explained below.
The user may specify a file name to open/delete/rename/etc with a case different than what is stored on mounted file system.  If an argument refers to an existing file with exactly the same name, then the case of the existing file on the disk will be used.  However, if a file name with exactly the same name is not found but a name differing only by case exists, rclone will transparently fixup the name.  This fixup happens only when an existing file is requested.  Case sensitivity of file names created anew by rclone is controlled by an underlying mounted file system.
Note that case sensitivity of the operating system running rclone (the target) may differ from case sensitivity of a file system mounted by rclone (the source).  The flag controls whether "fixup" is performed to satisfy the target.
If the flag is not provided on the command line, then its default value depends on the operating system where rclone runs: "true" on Windows and macOS, "false" otherwise.  If the flag is provided without a value, then it is "true".
Alternate report of used bytes Some backends, most notably S3, do not report the amount of bytes used. If you need this information to be available when running df on the filesystem, then pass the flag --vfs-used-is-size to rclone.  With this flag set, instead of relying on the backend to report this information, rclone will scan the whole remote similar to rclone size and compute the total used space itself.
WARNING. Contrary to rclone size, this flag ignores filters so that the result is accurate.  However, this is very inefficient and may cost lots of API calls resulting in extra charges.  Use it as a last resort and only with caching.
rclone mount remote:path /path/to/mountpoint [flags]
rclone moveto Move file or directory from source to dest.
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.
rclone moveto src dst
if src is file move it to dst, overwriting an existing file if it exists if src is directory move it to dst, overwriting existing files if they exist see move command for full details
This doesn't transfer files that are identical on src and dst, testing by size and modification time or MD5SUM.  src will be deleted on successful transfer.
rclone moveto source:path dest:path [flags]
Options -h, --help   help for moveto
rclone ncdu Explore a remote with a text based user interface.
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
↑,↓ or k,j to Move →,l to enter ←,h to return c toggle counts g toggle graph a toggle average size in directory u toggle human-readable format n,s,C,A sort by name,size,count,average size d delete file/directory y copy current path to clipboard Y display current path ^L refresh screen ? to toggle help on and off q/ESC/c-C to quit