1
0
mirror of https://github.com/rclone/rclone.git synced 2025-12-10 05:13:45 +00:00

Version v1.71.1

This commit is contained in:
Nick Craig-Wood
2025-09-24 16:24:23 +01:00
parent 931ab7c4db
commit 1a98c36a73
100 changed files with 14327 additions and 9700 deletions

8200
MANUAL.html generated

File diff suppressed because it is too large Load Diff

7986
MANUAL.md generated

File diff suppressed because it is too large Load Diff

2043
MANUAL.txt generated

File diff suppressed because it is too large Load Diff

View File

@@ -6,6 +6,31 @@ description: "Rclone Changelog"
# Changelog # Changelog
## v1.71.1 - 2025-09-24
[See commits](https://github.com/rclone/rclone/compare/v1.71.0...v1.71.1)
- Bug Fixes
- bisync: Fix error handling for renamed conflicts (nielash)
- march: Fix deadlock when using --fast-list on syncs (Nick Craig-Wood)
- operations: Fix partial name collisions for non --inplace copies (Nick Craig-Wood)
- pacer: Fix deadlock with --max-connections (Nick Craig-Wood)
- doc fixes (albertony, anon-pradip, Claudius Ellsel, dougal, Jean-Christophe Cura, Nick Craig-Wood, nielash)
- Mount
- Do not log successful unmount as an error (Tilman Vogel)
- VFS
- Fix SIGHUP killing serve instead of flushing directory caches (dougal)
- Local
- Fix rmdir "Access is denied" on windows (nielash)
- Box
- Fix about after change in API return (Nick Craig-Wood)
- Combine
- Propagate SlowHash feature (skbeh)
- Drive
- Update making your own client ID instructions (Ed Craig-Wood)
- Internet Archive
- Fix server side copy files with spaces (Nick Craig-Wood)
## v1.71.0 - 2025-08-22 ## v1.71.0 - 2025-08-22
[See commits](https://github.com/rclone/rclone/compare/v1.70.0...v1.71.0) [See commits](https://github.com/rclone/rclone/compare/v1.70.0...v1.71.0)

View File

@@ -15,8 +15,6 @@ mounting them, listing them in lots of different ways.
See the home page (https://rclone.org/) for installation, usage, See the home page (https://rclone.org/) for installation, usage,
documentation, changelog and configuration walkthroughs. documentation, changelog and configuration walkthroughs.
``` ```
rclone [flags] rclone [flags]
``` ```
@@ -1015,7 +1013,7 @@ rclone [flags]
--use-json-log Use json log format --use-json-log Use json log format
--use-mmap Use mmap allocator (see docs) --use-mmap Use mmap allocator (see docs)
--use-server-modtime Use server modified time instead of object metadata --use-server-modtime Use server modified time instead of object metadata
--user-agent string Set the user-agent to a specified string (default "rclone/v1.71.0") --user-agent string Set the user-agent to a specified string (default "rclone/v1.71.1")
-v, --verbose count Print lots more stuff (repeat for more) -v, --verbose count Print lots more stuff (repeat for more)
-V, --version Print the version number -V, --version Print the version number
--webdav-auth-redirect Preserve authentication on redirect --webdav-auth-redirect Preserve authentication on redirect
@@ -1057,6 +1055,9 @@ rclone [flags]
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone about](/commands/rclone_about/) - Get quota information from the remote. * [rclone about](/commands/rclone_about/) - Get quota information from the remote.
* [rclone authorize](/commands/rclone_authorize/) - Remote authorization. * [rclone authorize](/commands/rclone_authorize/) - Remote authorization.
* [rclone backend](/commands/rclone_backend/) - Run a backend-specific command. * [rclone backend](/commands/rclone_backend/) - Run a backend-specific command.
@@ -1111,3 +1112,5 @@ rclone [flags]
* [rclone tree](/commands/rclone_tree/) - List the contents of the remote in a tree like fashion. * [rclone tree](/commands/rclone_tree/) - List the contents of the remote in a tree like fashion.
* [rclone version](/commands/rclone_version/) - Show the version number. * [rclone version](/commands/rclone_version/) - Show the version number.
<!-- markdownlint-restore -->

View File

@@ -15,40 +15,46 @@ output. The output is typically used, free, quota and trash contents.
E.g. Typical output from `rclone about remote:` is: E.g. Typical output from `rclone about remote:` is:
Total: 17 GiB ```text
Used: 7.444 GiB Total: 17 GiB
Free: 1.315 GiB Used: 7.444 GiB
Trashed: 100.000 MiB Free: 1.315 GiB
Other: 8.241 GiB Trashed: 100.000 MiB
Other: 8.241 GiB
```
Where the fields are: Where the fields are:
* Total: Total size available. - Total: Total size available.
* Used: Total size used. - Used: Total size used.
* Free: Total space available to this user. - Free: Total space available to this user.
* Trashed: Total space used by trash. - Trashed: Total space used by trash.
* Other: Total amount in other storage (e.g. Gmail, Google Photos). - Other: Total amount in other storage (e.g. Gmail, Google Photos).
* Objects: Total number of objects in the storage. - Objects: Total number of objects in the storage.
All sizes are in number of bytes. All sizes are in number of bytes.
Applying a `--full` flag to the command prints the bytes in full, e.g. Applying a `--full` flag to the command prints the bytes in full, e.g.
Total: 18253611008 ```text
Used: 7993453766 Total: 18253611008
Free: 1411001220 Used: 7993453766
Trashed: 104857602 Free: 1411001220
Other: 8849156022 Trashed: 104857602
Other: 8849156022
```
A `--json` flag generates conveniently machine-readable output, e.g. A `--json` flag generates conveniently machine-readable output, e.g.
{ ```json
"total": 18253611008, {
"used": 7993453766, "total": 18253611008,
"trashed": 104857602, "used": 7993453766,
"other": 8849156022, "trashed": 104857602,
"free": 1411001220 "other": 8849156022,
} "free": 1411001220
}
```
Not all backends print all fields. Information is not included if it is not Not all backends print all fields. Information is not included if it is not
provided by a backend. Where the value is unlimited it is omitted. provided by a backend. Where the value is unlimited it is omitted.
@@ -56,7 +62,6 @@ provided by a backend. Where the value is unlimited it is omitted.
Some backends does not support the `rclone about` command at all, Some backends does not support the `rclone about` command at all,
see complete list in [documentation](https://rclone.org/overview/#optional-features). see complete list in [documentation](https://rclone.org/overview/#optional-features).
``` ```
rclone about remote: [flags] rclone about remote: [flags]
``` ```
@@ -73,5 +78,10 @@ See the [global flags page](/flags/) for global options not listed here.
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends. * [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends.
<!-- markdownlint-restore -->

View File

@@ -15,14 +15,16 @@ rclone from a machine with a browser - use as instructed by
rclone config. rclone config.
The command requires 1-3 arguments: The command requires 1-3 arguments:
- fs name (e.g., "drive", "s3", etc.)
- Either a base64 encoded JSON blob obtained from a previous rclone config session - fs name (e.g., "drive", "s3", etc.)
- Or a client_id and client_secret pair obtained from the remote service - Either a base64 encoded JSON blob obtained from a previous rclone config session
- Or a client_id and client_secret pair obtained from the remote service
Use --auth-no-open-browser to prevent rclone to open auth Use --auth-no-open-browser to prevent rclone to open auth
link in default browser automatically. link in default browser automatically.
Use --template to generate HTML output via a custom Go template. If a blank string is provided as an argument to this flag, the default template is used. Use --template to generate HTML output via a custom Go template. If a blank
string is provided as an argument to this flag, the default template is used.
``` ```
rclone authorize <fs name> [base64_json_blob | client_id client_secret] [flags] rclone authorize <fs name> [base64_json_blob | client_id client_secret] [flags]
@@ -40,5 +42,10 @@ See the [global flags page](/flags/) for global options not listed here.
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends. * [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends.
<!-- markdownlint-restore -->

View File

@@ -16,27 +16,34 @@ see the backend docs for definitions.
You can discover what commands a backend implements by using You can discover what commands a backend implements by using
rclone backend help remote: ```sh
rclone backend help <backendname> rclone backend help remote:
rclone backend help <backendname>
```
You can also discover information about the backend using (see You can also discover information about the backend using (see
[operations/fsinfo](/rc/#operations-fsinfo) in the remote control docs [operations/fsinfo](/rc/#operations-fsinfo) in the remote control docs
for more info). for more info).
rclone backend features remote: ```sh
rclone backend features remote:
```
Pass options to the backend command with -o. This should be key=value or key, e.g.: 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 ```sh
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 Pass arguments to the backend by placing them on the end of the line
rclone backend cleanup remote:path file1 file2 file3 ```sh
rclone backend cleanup remote:path file1 file2 file3
```
Note to run these commands on a running backend then see Note to run these commands on a running backend then see
[backend/command](/rc/#backend-command) in the rc docs. [backend/command](/rc/#backend-command) in the rc docs.
``` ```
rclone backend <command> remote:path [opts] <args> [flags] rclone backend <command> remote:path [opts] <args> [flags]
``` ```
@@ -56,7 +63,7 @@ See the [global flags page](/flags/) for global options not listed here.
Important flags useful for most commands Important flags useful for most commands
``` ```text
-n, --dry-run Do a trial run with no permanent changes -n, --dry-run Do a trial run with no permanent changes
-i, --interactive Enable interactive mode -i, --interactive Enable interactive mode
-v, --verbose count Print lots more stuff (repeat for more) -v, --verbose count Print lots more stuff (repeat for more)
@@ -64,5 +71,10 @@ Important flags useful for most commands
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends. * [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends.
<!-- markdownlint-restore -->

View File

@@ -16,18 +16,19 @@ Perform bidirectional synchronization between two paths.
bidirectional cloud sync solution in rclone. bidirectional cloud sync solution in rclone.
It retains the Path1 and Path2 filesystem listings from the prior run. It retains the Path1 and Path2 filesystem listings from the prior run.
On each successive run it will: On each successive run it will:
- list files on Path1 and Path2, and check for changes on each side. - list files on Path1 and Path2, and check for changes on each side.
Changes include `New`, `Newer`, `Older`, and `Deleted` files. Changes include `New`, `Newer`, `Older`, and `Deleted` files.
- Propagate changes on Path1 to Path2, and vice-versa. - Propagate changes on Path1 to Path2, and vice-versa.
Bisync is considered an **advanced command**, so use with care. Bisync is considered an **advanced command**, so use with care.
Make sure you have read and understood the entire [manual](https://rclone.org/bisync) Make sure you have read and understood the entire [manual](https://rclone.org/bisync)
(especially the [Limitations](https://rclone.org/bisync/#limitations) section) before using, (especially the [Limitations](https://rclone.org/bisync/#limitations) section)
or data loss can result. Questions can be asked in the [Rclone Forum](https://forum.rclone.org/). before using, or data loss can result. Questions can be asked in the
[Rclone Forum](https://forum.rclone.org/).
See [full bisync description](https://rclone.org/bisync/) for details. See [full bisync description](https://rclone.org/bisync/) for details.
``` ```
rclone bisync remote1:path1 remote2:path2 [flags] rclone bisync remote1:path1 remote2:path2 [flags]
``` ```
@@ -69,7 +70,7 @@ See the [global flags page](/flags/) for global options not listed here.
Flags for anything which can copy a file Flags for anything which can copy a file
``` ```text
--check-first Do all the checks before starting transfers --check-first Do all the checks before starting transfers
-c, --checksum Check for changes with size & checksum (if available, or fallback to size only) -c, --checksum Check for changes with size & checksum (if available, or fallback to size only)
--compare-dest stringArray Include additional server-side paths during comparison --compare-dest stringArray Include additional server-side paths during comparison
@@ -110,7 +111,7 @@ Flags for anything which can copy a file
Important flags useful for most commands Important flags useful for most commands
``` ```text
-n, --dry-run Do a trial run with no permanent changes -n, --dry-run Do a trial run with no permanent changes
-i, --interactive Enable interactive mode -i, --interactive Enable interactive mode
-v, --verbose count Print lots more stuff (repeat for more) -v, --verbose count Print lots more stuff (repeat for more)
@@ -120,7 +121,7 @@ Important flags useful for most commands
Flags for filtering directory listings Flags for filtering directory listings
``` ```text
--delete-excluded Delete files on dest excluded from sync --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern --exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin) --exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
@@ -148,5 +149,10 @@ Flags for filtering directory listings
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends. * [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends.
<!-- markdownlint-restore -->

View File

@@ -14,15 +14,21 @@ Sends any files to standard output.
You can use it like this to output a single file You can use it like this to output a single file
rclone cat remote:path/to/file ```sh
rclone cat remote:path/to/file
```
Or like this to output any file in dir or its subdirectories. Or like this to output any file in dir or its subdirectories.
rclone cat remote:path/to/dir ```sh
rclone cat remote:path/to/dir
```
Or like this to output any .txt files in dir or its subdirectories. Or like this to output any .txt files in dir or its subdirectories.
rclone --include "*.txt" cat remote:path/to/dir ```sh
rclone --include "*.txt" cat remote:path/to/dir
```
Use the `--head` flag to print characters only at the start, `--tail` for 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. the end and `--offset` and `--count` to print a section in the middle.
@@ -33,14 +39,17 @@ Use the `--separator` flag to print a separator value between files. Be sure to
shell-escape special characters. For example, to print a newline between shell-escape special characters. For example, to print a newline between
files, use: files, use:
* bash: - bash:
rclone --include "*.txt" --separator $'\n' cat remote:path/to/dir ```sh
rclone --include "*.txt" --separator $'\n' cat remote:path/to/dir
```
* powershell: - powershell:
rclone --include "*.txt" --separator "`n" cat remote:path/to/dir
```powershell
rclone --include "*.txt" --separator "`n" cat remote:path/to/dir
```
``` ```
rclone cat remote:path [flags] rclone cat remote:path [flags]
@@ -65,7 +74,7 @@ See the [global flags page](/flags/) for global options not listed here.
Flags for filtering directory listings Flags for filtering directory listings
``` ```text
--delete-excluded Delete files on dest excluded from sync --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern --exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin) --exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
@@ -95,12 +104,17 @@ Flags for filtering directory listings
Flags for listing directories Flags for listing directories
``` ```text
--default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z) --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
--fast-list Use recursive list if available; uses more memory but fewer transactions --fast-list Use recursive list if available; uses more memory but fewer transactions
``` ```
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends. * [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends.
<!-- markdownlint-restore -->

View File

@@ -52,7 +52,6 @@ you what happened to it. These are reminiscent of diff files.
The default number of parallel checks is 8. See the [--checkers](/docs/#checkers-int) The default number of parallel checks is 8. See the [--checkers](/docs/#checkers-int)
option for more information. option for more information.
``` ```
rclone check source:path dest:path [flags] rclone check source:path dest:path [flags]
``` ```
@@ -79,7 +78,7 @@ See the [global flags page](/flags/) for global options not listed here.
Flags used for check commands Flags used for check commands
``` ```text
--max-backlog int Maximum number of objects in sync or check backlog (default 10000) --max-backlog int Maximum number of objects in sync or check backlog (default 10000)
``` ```
@@ -87,7 +86,7 @@ Flags used for check commands
Flags for filtering directory listings Flags for filtering directory listings
``` ```text
--delete-excluded Delete files on dest excluded from sync --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern --exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin) --exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
@@ -117,12 +116,17 @@ Flags for filtering directory listings
Flags for listing directories Flags for listing directories
``` ```text
--default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z) --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
--fast-list Use recursive list if available; uses more memory but fewer transactions --fast-list Use recursive list if available; uses more memory but fewer transactions
``` ```
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends. * [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends.
<!-- markdownlint-restore -->

View File

@@ -47,7 +47,6 @@ you what happened to it. These are reminiscent of diff files.
The default number of parallel checks is 8. See the [--checkers](/docs/#checkers-int) The default number of parallel checks is 8. See the [--checkers](/docs/#checkers-int)
option for more information. option for more information.
``` ```
rclone checksum <hash> sumfile dst:path [flags] rclone checksum <hash> sumfile dst:path [flags]
``` ```
@@ -73,7 +72,7 @@ See the [global flags page](/flags/) for global options not listed here.
Flags for filtering directory listings Flags for filtering directory listings
``` ```text
--delete-excluded Delete files on dest excluded from sync --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern --exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin) --exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
@@ -103,12 +102,17 @@ Flags for filtering directory listings
Flags for listing directories Flags for listing directories
``` ```text
--default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z) --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
--fast-list Use recursive list if available; uses more memory but fewer transactions --fast-list Use recursive list if available; uses more memory but fewer transactions
``` ```
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends. * [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends.
<!-- markdownlint-restore -->

View File

@@ -13,7 +13,6 @@ Clean up the remote if possible.
Clean up the remote if possible. Empty the trash or delete old file Clean up the remote if possible. Empty the trash or delete old file
versions. Not supported by all remotes. versions. Not supported by all remotes.
``` ```
rclone cleanup remote:path [flags] rclone cleanup remote:path [flags]
``` ```
@@ -31,7 +30,7 @@ See the [global flags page](/flags/) for global options not listed here.
Important flags useful for most commands Important flags useful for most commands
``` ```text
-n, --dry-run Do a trial run with no permanent changes -n, --dry-run Do a trial run with no permanent changes
-i, --interactive Enable interactive mode -i, --interactive Enable interactive mode
-v, --verbose count Print lots more stuff (repeat for more) -v, --verbose count Print lots more stuff (repeat for more)
@@ -39,5 +38,10 @@ Important flags useful for most commands
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends. * [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends.
<!-- markdownlint-restore -->

View File

@@ -15,7 +15,6 @@ Output completion script for a given shell.
Generates a shell completion script for rclone. Generates a shell completion script for rclone.
Run with `--help` to list the supported shells. Run with `--help` to list the supported shells.
## Options ## Options
``` ```
@@ -26,9 +25,14 @@ See the [global flags page](/flags/) for global options not listed here.
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends. * [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends.
* [rclone completion bash](/commands/rclone_completion_bash/) - Output bash completion script for rclone. * [rclone completion bash](/commands/rclone_completion_bash/) - Output bash completion script for rclone.
* [rclone completion fish](/commands/rclone_completion_fish/) - Output fish completion script for rclone. * [rclone completion fish](/commands/rclone_completion_fish/) - Output fish completion script for rclone.
* [rclone completion powershell](/commands/rclone_completion_powershell/) - Output powershell completion script for rclone. * [rclone completion powershell](/commands/rclone_completion_powershell/) - Output powershell completion script for rclone.
* [rclone completion zsh](/commands/rclone_completion_zsh/) - Output zsh completion script for rclone. * [rclone completion zsh](/commands/rclone_completion_zsh/) - Output zsh completion script for rclone.
<!-- markdownlint-restore -->

View File

@@ -13,17 +13,21 @@ Output bash completion script for rclone.
Generates a bash shell autocompletion script for rclone. Generates a bash shell autocompletion script for rclone.
By default, when run without any arguments, By default, when run without any arguments,
rclone completion bash ```sh
rclone completion bash
```
the generated script will be written to the generated script will be written to
/etc/bash_completion.d/rclone ```sh
/etc/bash_completion.d/rclone
```
and so rclone will probably need to be run as root, or with sudo. and so rclone will probably need to be run as root, or with sudo.
If you supply a path to a file as the command line argument, then If you supply a path to a file as the command line argument, then
the generated script will be written to that file, in which case the generated script will be written to that file, in which case
you should not need root privileges. you should not need root privileges.
@@ -34,12 +38,13 @@ can logout and login again to use the autocompletion script.
Alternatively, you can source the script directly Alternatively, you can source the script directly
. /path/to/my_bash_completion_scripts/rclone ```sh
. /path/to/my_bash_completion_scripts/rclone
```
and the autocompletion functionality will be added to your and the autocompletion functionality will be added to your
current shell. current shell.
``` ```
rclone completion bash [output_file] [flags] rclone completion bash [output_file] [flags]
``` ```
@@ -54,5 +59,10 @@ See the [global flags page](/flags/) for global options not listed here.
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone completion](/commands/rclone_completion/) - Output completion script for a given shell. * [rclone completion](/commands/rclone_completion/) - Output completion script for a given shell.
<!-- markdownlint-restore -->

View File

@@ -16,19 +16,22 @@ Generates a fish autocompletion script for rclone.
This writes to /etc/fish/completions/rclone.fish by default so will This writes to /etc/fish/completions/rclone.fish by default so will
probably need to be run with sudo or as root, e.g. probably need to be run with sudo or as root, e.g.
sudo rclone completion fish ```sh
sudo rclone completion fish
```
Logout and login again to use the autocompletion scripts, or source Logout and login again to use the autocompletion scripts, or source
them directly them directly
. /etc/fish/completions/rclone.fish ```sh
. /etc/fish/completions/rclone.fish
```
If you supply a command line argument the script will be written If you supply a command line argument the script will be written
there. there.
If output_file is "-", then the output will be written to stdout. If output_file is "-", then the output will be written to stdout.
``` ```
rclone completion fish [output_file] [flags] rclone completion fish [output_file] [flags]
``` ```
@@ -43,5 +46,10 @@ See the [global flags page](/flags/) for global options not listed here.
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone completion](/commands/rclone_completion/) - Output completion script for a given shell. * [rclone completion](/commands/rclone_completion/) - Output completion script for a given shell.
<!-- markdownlint-restore -->

View File

@@ -15,14 +15,15 @@ Generate the autocompletion script for powershell.
To load completions in your current shell session: To load completions in your current shell session:
rclone completion powershell | Out-String | Invoke-Expression ```sh
rclone completion powershell | Out-String | Invoke-Expression
```
To load completions for every new session, add the output of the above command To load completions for every new session, add the output of the above command
to your powershell profile. to your powershell profile.
If output_file is "-" or missing, then the output will be written to stdout. If output_file is "-" or missing, then the output will be written to stdout.
``` ```
rclone completion powershell [output_file] [flags] rclone completion powershell [output_file] [flags]
``` ```
@@ -37,5 +38,10 @@ See the [global flags page](/flags/) for global options not listed here.
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone completion](/commands/rclone_completion/) - Output completion script for a given shell. * [rclone completion](/commands/rclone_completion/) - Output completion script for a given shell.
<!-- markdownlint-restore -->

View File

@@ -16,19 +16,22 @@ Generates a zsh autocompletion script for rclone.
This writes to /usr/share/zsh/vendor-completions/_rclone by default so will 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. probably need to be run with sudo or as root, e.g.
sudo rclone completion zsh ```sh
sudo rclone completion zsh
```
Logout and login again to use the autocompletion scripts, or source Logout and login again to use the autocompletion scripts, or source
them directly them directly
autoload -U compinit && compinit ```sh
autoload -U compinit && compinit
```
If you supply a command line argument the script will be written If you supply a command line argument the script will be written
there. there.
If output_file is "-", then the output will be written to stdout. If output_file is "-", then the output will be written to stdout.
``` ```
rclone completion zsh [output_file] [flags] rclone completion zsh [output_file] [flags]
``` ```
@@ -43,5 +46,10 @@ See the [global flags page](/flags/) for global options not listed here.
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone completion](/commands/rclone_completion/) - Output completion script for a given shell. * [rclone completion](/commands/rclone_completion/) - Output completion script for a given shell.
<!-- markdownlint-restore -->

View File

@@ -14,7 +14,6 @@ Enter an interactive configuration session where you can setup new
remotes and manage existing ones. You may also set or remove a remotes and manage existing ones. You may also set or remove a
password to protect your configuration. password to protect your configuration.
``` ```
rclone config [flags] rclone config [flags]
``` ```
@@ -29,6 +28,9 @@ See the [global flags page](/flags/) for global options not listed here.
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends. * [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends.
* [rclone config create](/commands/rclone_config_create/) - Create a new remote with name, type and options. * [rclone config create](/commands/rclone_config_create/) - Create a new remote with name, type and options.
* [rclone config delete](/commands/rclone_config_delete/) - Delete an existing remote. * [rclone config delete](/commands/rclone_config_delete/) - Delete an existing remote.
@@ -47,3 +49,5 @@ See the [global flags page](/flags/) for global options not listed here.
* [rclone config update](/commands/rclone_config_update/) - Update options in an existing remote. * [rclone config update](/commands/rclone_config_update/) - Update options in an existing remote.
* [rclone config userinfo](/commands/rclone_config_userinfo/) - Prints info about logged in user of remote. * [rclone config userinfo](/commands/rclone_config_userinfo/) - Prints info about logged in user of remote.
<!-- markdownlint-restore -->

View File

@@ -16,13 +16,17 @@ 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 For example, to make a swift remote of name myremote using auto config
you would do: you would do:
rclone config create myremote swift env_auth true ```sh
rclone config create myremote swift env_auth=true rclone config create myremote swift env_auth true
rclone config create myremote swift env_auth=true
```
So for example if you wanted to configure a Google Drive remote but So for example if you wanted to configure a Google Drive remote but
using remote authorization you would do this: using remote authorization you would do this:
rclone config create mydrive drive config_is_local=false ```sh
rclone config create mydrive drive config_is_local=false
```
Note that if the config process would normally ask a question the Note that if the config process would normally ask a question the
default is taken (unless `--non-interactive` is used). Each time default is taken (unless `--non-interactive` is used). Each time
@@ -50,29 +54,29 @@ it.
This will look something like (some irrelevant detail removed): This will look something like (some irrelevant detail removed):
``` ```json
{ {
"State": "*oauth-islocal,teamdrive,,", "State": "*oauth-islocal,teamdrive,,",
"Option": { "Option": {
"Name": "config_is_local", "Name": "config_is_local",
"Help": "Use web browser to automatically authenticate rclone with remote?\n * Say Y if the machine running rclone has a web browser you can use\n * Say N if running rclone on a (remote) machine without web browser access\nIf not sure try Y. If Y failed, try N.\n", "Help": "Use web browser to automatically authenticate rclone with remote?\n * Say Y if the machine running rclone has a web browser you can use\n * Say N if running rclone on a (remote) machine without web browser access\nIf not sure try Y. If Y failed, try N.\n",
"Default": true, "Default": true,
"Examples": [ "Examples": [
{ {
"Value": "true", "Value": "true",
"Help": "Yes" "Help": "Yes"
}, },
{ {
"Value": "false", "Value": "false",
"Help": "No" "Help": "No"
} }
], ],
"Required": false, "Required": false,
"IsPassword": false, "IsPassword": false,
"Type": "bool", "Type": "bool",
"Exclusive": true, "Exclusive": true,
}, },
"Error": "", "Error": "",
} }
``` ```
@@ -95,7 +99,9 @@ The keys of `Option` are used as follows:
If `Error` is set then it should be shown to the user at the same If `Error` is set then it should be shown to the user at the same
time as the question. time as the question.
rclone config update name --continue --state "*oauth-islocal,teamdrive,," --result "true" ```sh
rclone config update name --continue --state "*oauth-islocal,teamdrive,," --result "true"
```
Note that when using `--continue` all passwords should be passed in Note that when using `--continue` all passwords should be passed in
the clear (not obscured). Any default config values should be passed the clear (not obscured). Any default config values should be passed
@@ -111,7 +117,6 @@ defaults for questions as usual.
Note that `bin/config.py` in the rclone source implements this protocol Note that `bin/config.py` in the rclone source implements this protocol
as a readable demonstration. as a readable demonstration.
``` ```
rclone config create name type [key value]* [flags] rclone config create name type [key value]* [flags]
``` ```
@@ -134,5 +139,10 @@ See the [global flags page](/flags/) for global options not listed here.
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone config](/commands/rclone_config/) - Enter an interactive configuration session. * [rclone config](/commands/rclone_config/) - Enter an interactive configuration session.
<!-- markdownlint-restore -->

View File

@@ -22,5 +22,10 @@ See the [global flags page](/flags/) for global options not listed here.
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone config](/commands/rclone_config/) - Enter an interactive configuration session. * [rclone config](/commands/rclone_config/) - Enter an interactive configuration session.
<!-- markdownlint-restore -->

View File

@@ -15,7 +15,6 @@ This normally means revoking the oauth token.
To reconnect use "rclone config reconnect". To reconnect use "rclone config reconnect".
``` ```
rclone config disconnect remote: [flags] rclone config disconnect remote: [flags]
``` ```
@@ -30,5 +29,10 @@ See the [global flags page](/flags/) for global options not listed here.
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone config](/commands/rclone_config/) - Enter an interactive configuration session. * [rclone config](/commands/rclone_config/) - Enter an interactive configuration session.
<!-- markdownlint-restore -->

View File

@@ -22,5 +22,10 @@ See the [global flags page](/flags/) for global options not listed here.
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone config](/commands/rclone_config/) - Enter an interactive configuration session. * [rclone config](/commands/rclone_config/) - Enter an interactive configuration session.
<!-- markdownlint-restore -->

View File

@@ -14,7 +14,6 @@ Enter an interactive configuration session where you can setup new
remotes and manage existing ones. You may also set or remove a remotes and manage existing ones. You may also set or remove a
password to protect your configuration. password to protect your configuration.
``` ```
rclone config edit [flags] rclone config edit [flags]
``` ```
@@ -29,5 +28,10 @@ See the [global flags page](/flags/) for global options not listed here.
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone config](/commands/rclone_config/) - Enter an interactive configuration session. * [rclone config](/commands/rclone_config/) - Enter an interactive configuration session.
<!-- markdownlint-restore -->

View File

@@ -12,7 +12,6 @@ set, remove and check the encryption for the config file
This command sets, clears and checks the encryption for the config file using This command sets, clears and checks the encryption for the config file using
the subcommands below. the subcommands below.
## Options ## Options
``` ```
@@ -23,8 +22,13 @@ See the [global flags page](/flags/) for global options not listed here.
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone config](/commands/rclone_config/) - Enter an interactive configuration session. * [rclone config](/commands/rclone_config/) - Enter an interactive configuration session.
* [rclone config encryption check](/commands/rclone_config_encryption_check/) - Check that the config file is encrypted * [rclone config encryption check](/commands/rclone_config_encryption_check/) - Check that the config file is encrypted
* [rclone config encryption remove](/commands/rclone_config_encryption_remove/) - Remove the config file encryption password * [rclone config encryption remove](/commands/rclone_config_encryption_remove/) - Remove the config file encryption password
* [rclone config encryption set](/commands/rclone_config_encryption_set/) - Set or change the config file encryption password * [rclone config encryption set](/commands/rclone_config_encryption_set/) - Set or change the config file encryption password
<!-- markdownlint-restore -->

View File

@@ -18,7 +18,6 @@ If decryption fails it will return a non-zero exit code if using
If the config file is not encrypted it will return a non zero exit code. If the config file is not encrypted it will return a non zero exit code.
``` ```
rclone config encryption check [flags] rclone config encryption check [flags]
``` ```
@@ -33,5 +32,10 @@ See the [global flags page](/flags/) for global options not listed here.
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone config encryption](/commands/rclone_config_encryption/) - set, remove and check the encryption for the config file * [rclone config encryption](/commands/rclone_config_encryption/) - set, remove and check the encryption for the config file
<!-- markdownlint-restore -->

View File

@@ -19,7 +19,6 @@ password.
If the config was not encrypted then no error will be returned and If the config was not encrypted then no error will be returned and
this command will do nothing. this command will do nothing.
``` ```
rclone config encryption remove [flags] rclone config encryption remove [flags]
``` ```
@@ -34,5 +33,10 @@ See the [global flags page](/flags/) for global options not listed here.
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone config encryption](/commands/rclone_config_encryption/) - set, remove and check the encryption for the config file * [rclone config encryption](/commands/rclone_config_encryption/) - set, remove and check the encryption for the config file
<!-- markdownlint-restore -->

View File

@@ -29,7 +29,6 @@ encryption remove`), then set it again with this command which may be
easier if you don't mind the unencrypted config file being on the disk easier if you don't mind the unencrypted config file being on the disk
briefly. briefly.
``` ```
rclone config encryption set [flags] rclone config encryption set [flags]
``` ```
@@ -44,5 +43,10 @@ See the [global flags page](/flags/) for global options not listed here.
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone config encryption](/commands/rclone_config_encryption/) - set, remove and check the encryption for the config file * [rclone config encryption](/commands/rclone_config_encryption/) - set, remove and check the encryption for the config file
<!-- markdownlint-restore -->

View File

@@ -22,5 +22,10 @@ See the [global flags page](/flags/) for global options not listed here.
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone config](/commands/rclone_config/) - Enter an interactive configuration session. * [rclone config](/commands/rclone_config/) - Enter an interactive configuration session.
<!-- markdownlint-restore -->

View File

@@ -16,13 +16,14 @@ 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 ```sh
rclone config password myremote fieldname=mypassword rclone config password myremote fieldname mypassword
rclone config password myremote fieldname=mypassword
```
This command is obsolete now that "config update" and "config create" This command is obsolete now that "config update" and "config create"
both support obscuring passwords directly. both support obscuring passwords directly.
``` ```
rclone config password name [key value]+ [flags] rclone config password name [key value]+ [flags]
``` ```
@@ -37,5 +38,10 @@ See the [global flags page](/flags/) for global options not listed here.
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone config](/commands/rclone_config/) - Enter an interactive configuration session. * [rclone config](/commands/rclone_config/) - Enter an interactive configuration session.
<!-- markdownlint-restore -->

View File

@@ -22,5 +22,10 @@ See the [global flags page](/flags/) for global options not listed here.
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone config](/commands/rclone_config/) - Enter an interactive configuration session. * [rclone config](/commands/rclone_config/) - Enter an interactive configuration session.
<!-- markdownlint-restore -->

View File

@@ -22,5 +22,10 @@ See the [global flags page](/flags/) for global options not listed here.
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone config](/commands/rclone_config/) - Enter an interactive configuration session. * [rclone config](/commands/rclone_config/) - Enter an interactive configuration session.
<!-- markdownlint-restore -->

View File

@@ -15,7 +15,6 @@ To disconnect the remote use "rclone config disconnect".
This normally means going through the interactive oauth flow again. This normally means going through the interactive oauth flow again.
``` ```
rclone config reconnect remote: [flags] rclone config reconnect remote: [flags]
``` ```
@@ -30,5 +29,10 @@ See the [global flags page](/flags/) for global options not listed here.
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone config](/commands/rclone_config/) - Enter an interactive configuration session. * [rclone config](/commands/rclone_config/) - Enter an interactive configuration session.
<!-- markdownlint-restore -->

View File

@@ -20,8 +20,6 @@ This makes the config file suitable for posting online for support.
It should be double checked before posting as the redaction may not be perfect. It should be double checked before posting as the redaction may not be perfect.
``` ```
rclone config redacted [<remote>] [flags] rclone config redacted [<remote>] [flags]
``` ```
@@ -36,5 +34,10 @@ See the [global flags page](/flags/) for global options not listed here.
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone config](/commands/rclone_config/) - Enter an interactive configuration session. * [rclone config](/commands/rclone_config/) - Enter an interactive configuration session.
<!-- markdownlint-restore -->

View File

@@ -22,5 +22,10 @@ See the [global flags page](/flags/) for global options not listed here.
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone config](/commands/rclone_config/) - Enter an interactive configuration session. * [rclone config](/commands/rclone_config/) - Enter an interactive configuration session.
<!-- markdownlint-restore -->

View File

@@ -22,5 +22,10 @@ See the [global flags page](/flags/) for global options not listed here.
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone config](/commands/rclone_config/) - Enter an interactive configuration session. * [rclone config](/commands/rclone_config/) - Enter an interactive configuration session.
<!-- markdownlint-restore -->

View File

@@ -16,13 +16,17 @@ pairs of `key` `value` or as `key=value`.
For example, to update the env_auth field of a remote of name myremote For example, to update the env_auth field of a remote of name myremote
you would do: you would do:
rclone config update myremote env_auth true ```sh
rclone config update myremote env_auth=true rclone config update myremote env_auth true
rclone config update myremote env_auth=true
```
If the remote uses OAuth the token will be updated, if you don't If the remote uses OAuth the token will be updated, if you don't
require this add an extra parameter thus: require this add an extra parameter thus:
rclone config update myremote env_auth=true config_refresh_token=false ```sh
rclone config update myremote env_auth=true config_refresh_token=false
```
Note that if the config process would normally ask a question the Note that if the config process would normally ask a question the
default is taken (unless `--non-interactive` is used). Each time default is taken (unless `--non-interactive` is used). Each time
@@ -50,29 +54,29 @@ it.
This will look something like (some irrelevant detail removed): This will look something like (some irrelevant detail removed):
``` ```json
{ {
"State": "*oauth-islocal,teamdrive,,", "State": "*oauth-islocal,teamdrive,,",
"Option": { "Option": {
"Name": "config_is_local", "Name": "config_is_local",
"Help": "Use web browser to automatically authenticate rclone with remote?\n * Say Y if the machine running rclone has a web browser you can use\n * Say N if running rclone on a (remote) machine without web browser access\nIf not sure try Y. If Y failed, try N.\n", "Help": "Use web browser to automatically authenticate rclone with remote?\n * Say Y if the machine running rclone has a web browser you can use\n * Say N if running rclone on a (remote) machine without web browser access\nIf not sure try Y. If Y failed, try N.\n",
"Default": true, "Default": true,
"Examples": [ "Examples": [
{ {
"Value": "true", "Value": "true",
"Help": "Yes" "Help": "Yes"
}, },
{ {
"Value": "false", "Value": "false",
"Help": "No" "Help": "No"
} }
], ],
"Required": false, "Required": false,
"IsPassword": false, "IsPassword": false,
"Type": "bool", "Type": "bool",
"Exclusive": true, "Exclusive": true,
}, },
"Error": "", "Error": "",
} }
``` ```
@@ -95,7 +99,9 @@ The keys of `Option` are used as follows:
If `Error` is set then it should be shown to the user at the same If `Error` is set then it should be shown to the user at the same
time as the question. time as the question.
rclone config update name --continue --state "*oauth-islocal,teamdrive,," --result "true" ```sh
rclone config update name --continue --state "*oauth-islocal,teamdrive,," --result "true"
```
Note that when using `--continue` all passwords should be passed in Note that when using `--continue` all passwords should be passed in
the clear (not obscured). Any default config values should be passed the clear (not obscured). Any default config values should be passed
@@ -111,7 +117,6 @@ defaults for questions as usual.
Note that `bin/config.py` in the rclone source implements this protocol Note that `bin/config.py` in the rclone source implements this protocol
as a readable demonstration. as a readable demonstration.
``` ```
rclone config update name [key value]+ [flags] rclone config update name [key value]+ [flags]
``` ```
@@ -134,5 +139,10 @@ See the [global flags page](/flags/) for global options not listed here.
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone config](/commands/rclone_config/) - Enter an interactive configuration session. * [rclone config](/commands/rclone_config/) - Enter an interactive configuration session.
<!-- markdownlint-restore -->

View File

@@ -12,7 +12,6 @@ Prints info about logged in user of remote.
This prints the details of the person logged in to the cloud storage This prints the details of the person logged in to the cloud storage
system. system.
``` ```
rclone config userinfo remote: [flags] rclone config userinfo remote: [flags]
``` ```
@@ -28,5 +27,10 @@ See the [global flags page](/flags/) for global options not listed here.
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone config](/commands/rclone_config/) - Enter an interactive configuration session. * [rclone config](/commands/rclone_config/) - Enter an interactive configuration session.
<!-- markdownlint-restore -->

View File

@@ -10,8 +10,8 @@ Convert file and directory names in place.
## Synopsis ## Synopsis
convmv supports advanced path name transformations for converting and renaming
convmv supports advanced path name transformations for converting and renaming files and directories by applying prefixes, suffixes, and other alterations. files and directories by applying prefixes, suffixes, and other alterations.
| Command | Description | | Command | Description |
|------|------| |------|------|
@@ -20,10 +20,13 @@ convmv supports advanced path name transformations for converting and renaming f
| `--name-transform suffix_keep_extension=XXXX` | Appends XXXX to the file name while preserving the original file extension. | | `--name-transform suffix_keep_extension=XXXX` | Appends XXXX to the file name while preserving the original file extension. |
| `--name-transform trimprefix=XXXX` | Removes XXXX if it appears at the start of the file name. | | `--name-transform trimprefix=XXXX` | Removes XXXX if it appears at the start of the file name. |
| `--name-transform trimsuffix=XXXX` | Removes XXXX if it appears at the end of the file name. | | `--name-transform trimsuffix=XXXX` | Removes XXXX if it appears at the end of the file name. |
| `--name-transform regex=/pattern/replacement/` | Applies a regex-based transformation. | | `--name-transform regex=pattern/replacement` | Applies a regex-based transformation. |
| `--name-transform replace=old:new` | Replaces occurrences of old with new in the file name. | | `--name-transform replace=old:new` | Replaces occurrences of old with new in the file name. |
| `--name-transform date={YYYYMMDD}` | Appends or prefixes the specified date format. | | `--name-transform date={YYYYMMDD}` | Appends or prefixes the specified date format. |
| `--name-transform truncate=N` | Truncates the file name to a maximum of N characters. | | `--name-transform truncate=N` | Truncates the file name to a maximum of N characters. |
| `--name-transform truncate_keep_extension=N` | Truncates the file name to a maximum of N characters while preserving the original file extension. |
| `--name-transform truncate_bytes=N` | Truncates the file name to a maximum of N bytes (not characters). |
| `--name-transform truncate_bytes_keep_extension=N` | Truncates the file name to a maximum of N bytes (not characters) while preserving the original file extension. |
| `--name-transform base64encode` | Encodes the file name in Base64. | | `--name-transform base64encode` | Encodes the file name in Base64. |
| `--name-transform base64decode` | Decodes a Base64-encoded file name. | | `--name-transform base64decode` | Decodes a Base64-encoded file name. |
| `--name-transform encoder=ENCODING` | Converts the file name to the specified encoding (e.g., ISO-8859-1, Windows-1252, Macintosh). | | `--name-transform encoder=ENCODING` | Converts the file name to the specified encoding (e.g., ISO-8859-1, Windows-1252, Macintosh). |
@@ -38,211 +41,227 @@ convmv supports advanced path name transformations for converting and renaming f
| `--name-transform nfd` | Converts the file name to NFD Unicode normalization form. | | `--name-transform nfd` | Converts the file name to NFD Unicode normalization form. |
| `--name-transform nfkc` | Converts the file name to NFKC Unicode normalization form. | | `--name-transform nfkc` | Converts the file name to NFKC Unicode normalization form. |
| `--name-transform nfkd` | Converts the file name to NFKD Unicode normalization form. | | `--name-transform nfkd` | Converts the file name to NFKD Unicode normalization form. |
| `--name-transform command=/path/to/my/programfile names.` | Executes an external program to transform | | `--name-transform command=/path/to/my/programfile names.` | Executes an external program to transform. |
Conversion modes:
Conversion modes: ```text
none
nfc
nfd
nfkc
nfkd
replace
prefix
suffix
suffix_keep_extension
trimprefix
trimsuffix
index
date
truncate
truncate_keep_extension
truncate_bytes
truncate_bytes_keep_extension
base64encode
base64decode
encoder
decoder
ISO-8859-1
Windows-1252
Macintosh
charmap
lowercase
uppercase
titlecase
ascii
url
regex
command
``` ```
none
nfc
nfd
nfkc
nfkd
replace
prefix
suffix
suffix_keep_extension
trimprefix
trimsuffix
index
date
truncate
base64encode
base64decode
encoder
decoder
ISO-8859-1
Windows-1252
Macintosh
charmap
lowercase
uppercase
titlecase
ascii
url
regex
command
```
Char maps:
```
IBM-Code-Page-037
IBM-Code-Page-437
IBM-Code-Page-850
IBM-Code-Page-852
IBM-Code-Page-855
Windows-Code-Page-858
IBM-Code-Page-860
IBM-Code-Page-862
IBM-Code-Page-863
IBM-Code-Page-865
IBM-Code-Page-866
IBM-Code-Page-1047
IBM-Code-Page-1140
ISO-8859-1
ISO-8859-2
ISO-8859-3
ISO-8859-4
ISO-8859-5
ISO-8859-6
ISO-8859-7
ISO-8859-8
ISO-8859-9
ISO-8859-10
ISO-8859-13
ISO-8859-14
ISO-8859-15
ISO-8859-16
KOI8-R
KOI8-U
Macintosh
Macintosh-Cyrillic
Windows-874
Windows-1250
Windows-1251
Windows-1252
Windows-1253
Windows-1254
Windows-1255
Windows-1256
Windows-1257
Windows-1258
X-User-Defined
```
Encoding masks:
```
Asterisk
BackQuote
BackSlash
Colon
CrLf
Ctl
Del
Dollar
Dot
DoubleQuote
Exclamation
Hash
InvalidUtf8
LeftCrLfHtVt
LeftPeriod
LeftSpace
LeftTilde
LtGt
None
Percent
Pipe
Question
Raw
RightCrLfHtVt
RightPeriod
RightSpace
Semicolon
SingleQuote
Slash
SquareBracket
```
Examples:
Char maps:
```text
IBM-Code-Page-037
IBM-Code-Page-437
IBM-Code-Page-850
IBM-Code-Page-852
IBM-Code-Page-855
Windows-Code-Page-858
IBM-Code-Page-860
IBM-Code-Page-862
IBM-Code-Page-863
IBM-Code-Page-865
IBM-Code-Page-866
IBM-Code-Page-1047
IBM-Code-Page-1140
ISO-8859-1
ISO-8859-2
ISO-8859-3
ISO-8859-4
ISO-8859-5
ISO-8859-6
ISO-8859-7
ISO-8859-8
ISO-8859-9
ISO-8859-10
ISO-8859-13
ISO-8859-14
ISO-8859-15
ISO-8859-16
KOI8-R
KOI8-U
Macintosh
Macintosh-Cyrillic
Windows-874
Windows-1250
Windows-1251
Windows-1252
Windows-1253
Windows-1254
Windows-1255
Windows-1256
Windows-1257
Windows-1258
X-User-Defined
``` ```
Encoding masks:
```text
Asterisk
BackQuote
BackSlash
Colon
CrLf
Ctl
Del
Dollar
Dot
DoubleQuote
Exclamation
Hash
InvalidUtf8
LeftCrLfHtVt
LeftPeriod
LeftSpace
LeftTilde
LtGt
None
Percent
Pipe
Question
Raw
RightCrLfHtVt
RightPeriod
RightSpace
Semicolon
SingleQuote
Slash
SquareBracket
```
Examples:
```sh
rclone convmv "stories/The Quick Brown Fox!.txt" --name-transform "all,uppercase" rclone convmv "stories/The Quick Brown Fox!.txt" --name-transform "all,uppercase"
// Output: STORIES/THE QUICK BROWN FOX!.TXT // Output: STORIES/THE QUICK BROWN FOX!.TXT
``` ```
``` ```sh
rclone convmv "stories/The Quick Brown Fox!.txt" --name-transform "all,replace=Fox:Turtle" --name-transform "all,replace=Quick:Slow" rclone convmv "stories/The Quick Brown Fox!.txt" --name-transform "all,replace=Fox:Turtle" --name-transform "all,replace=Quick:Slow"
// Output: stories/The Slow Brown Turtle!.txt // Output: stories/The Slow Brown Turtle!.txt
``` ```
``` ```sh
rclone convmv "stories/The Quick Brown Fox!.txt" --name-transform "all,base64encode" rclone convmv "stories/The Quick Brown Fox!.txt" --name-transform "all,base64encode"
// Output: c3Rvcmllcw==/VGhlIFF1aWNrIEJyb3duIEZveCEudHh0 // Output: c3Rvcmllcw==/VGhlIFF1aWNrIEJyb3duIEZveCEudHh0
``` ```
``` ```sh
rclone convmv "c3Rvcmllcw==/VGhlIFF1aWNrIEJyb3duIEZveCEudHh0" --name-transform "all,base64decode" rclone convmv "c3Rvcmllcw==/VGhlIFF1aWNrIEJyb3duIEZveCEudHh0" --name-transform "all,base64decode"
// Output: stories/The Quick Brown Fox!.txt // Output: stories/The Quick Brown Fox!.txt
``` ```
``` ```sh
rclone convmv "stories/The Quick Brown 🦊 Fox Went to the Café!.txt" --name-transform "all,nfc" rclone convmv "stories/The Quick Brown 🦊 Fox Went to the Café!.txt" --name-transform "all,nfc"
// Output: stories/The Quick Brown 🦊 Fox Went to the Café!.txt // Output: stories/The Quick Brown 🦊 Fox Went to the Café!.txt
``` ```
``` ```sh
rclone convmv "stories/The Quick Brown 🦊 Fox Went to the Café!.txt" --name-transform "all,nfd" rclone convmv "stories/The Quick Brown 🦊 Fox Went to the Café!.txt" --name-transform "all,nfd"
// Output: stories/The Quick Brown 🦊 Fox Went to the Café!.txt // Output: stories/The Quick Brown 🦊 Fox Went to the Café!.txt
``` ```
``` ```sh
rclone convmv "stories/The Quick Brown 🦊 Fox!.txt" --name-transform "all,ascii" rclone convmv "stories/The Quick Brown 🦊 Fox!.txt" --name-transform "all,ascii"
// Output: stories/The Quick Brown Fox!.txt // Output: stories/The Quick Brown Fox!.txt
``` ```
``` ```sh
rclone convmv "stories/The Quick Brown Fox!.txt" --name-transform "all,trimsuffix=.txt" rclone convmv "stories/The Quick Brown Fox!.txt" --name-transform "all,trimsuffix=.txt"
// Output: stories/The Quick Brown Fox! // Output: stories/The Quick Brown Fox!
``` ```
``` ```sh
rclone convmv "stories/The Quick Brown Fox!.txt" --name-transform "all,prefix=OLD_" rclone convmv "stories/The Quick Brown Fox!.txt" --name-transform "all,prefix=OLD_"
// Output: OLD_stories/OLD_The Quick Brown Fox!.txt // Output: OLD_stories/OLD_The Quick Brown Fox!.txt
``` ```
``` ```sh
rclone convmv "stories/The Quick Brown 🦊 Fox Went to the Café!.txt" --name-transform "all,charmap=ISO-8859-7" rclone convmv "stories/The Quick Brown 🦊 Fox Went to the Café!.txt" --name-transform "all,charmap=ISO-8859-7"
// Output: stories/The Quick Brown _ Fox Went to the Caf_!.txt // Output: stories/The Quick Brown _ Fox Went to the Caf_!.txt
``` ```
``` ```sh
rclone convmv "stories/The Quick Brown Fox: A Memoir [draft].txt" --name-transform "all,encoder=Colon,SquareBracket" rclone convmv "stories/The Quick Brown Fox: A Memoir [draft].txt" --name-transform "all,encoder=Colon,SquareBracket"
// Output: stories/The Quick Brown Fox A Memoir draft.txt // Output: stories/The Quick Brown Fox A Memoir draft.txt
``` ```
``` ```sh
rclone convmv "stories/The Quick Brown 🦊 Fox Went to the Café!.txt" --name-transform "all,truncate=21" rclone convmv "stories/The Quick Brown 🦊 Fox Went to the Café!.txt" --name-transform "all,truncate=21"
// Output: stories/The Quick Brown 🦊 Fox // Output: stories/The Quick Brown 🦊 Fox
``` ```
``` ```sh
rclone convmv "stories/The Quick Brown Fox!.txt" --name-transform "all,command=echo" rclone convmv "stories/The Quick Brown Fox!.txt" --name-transform "all,command=echo"
// Output: stories/The Quick Brown Fox!.txt // Output: stories/The Quick Brown Fox!.txt
``` ```
``` ```sh
rclone convmv "stories/The Quick Brown Fox!" --name-transform "date=-{YYYYMMDD}" rclone convmv "stories/The Quick Brown Fox!" --name-transform "date=-{YYYYMMDD}"
// Output: stories/The Quick Brown Fox!-20250618 // Output: stories/The Quick Brown Fox!-20250924
``` ```
``` ```sh
rclone convmv "stories/The Quick Brown Fox!" --name-transform "date=-{macfriendlytime}" rclone convmv "stories/The Quick Brown Fox!" --name-transform "date=-{macfriendlytime}"
// Output: stories/The Quick Brown Fox!-2025-06-18 0148PM // Output: stories/The Quick Brown Fox!-2025-09-24 0413PM
``` ```
``` ```sh
rclone convmv "stories/The Quick Brown Fox!.txt" --name-transform "all,regex=[\\.\\w]/ab" rclone convmv "stories/The Quick Brown Fox!.txt" --name-transform "all,regex=[\\.\\w]/ab"
// Output: ababababababab/ababab ababababab ababababab ababab!abababab // Output: ababababababab/ababab ababababab ababababab ababab!abababab
``` ```
Multiple transformations can be used in sequence, applied in the order they are specified on the command line. The regex command generally accepts Perl-style regular expressions, the exact
syntax is defined in the [Go regular expression reference](https://golang.org/pkg/regexp/syntax/).
The replacement string may contain capturing group variables, referencing
capturing groups using the syntax `$name` or `${name}`, where the name can
refer to a named capturing group or it can simply be the index as a number.
To insert a literal $, use $$.
Multiple transformations can be used in sequence, applied
in the order they are specified on the command line.
The `--name-transform` flag is also available in `sync`, `copy`, and `move`. The `--name-transform` flag is also available in `sync`, `copy`, and `move`.
# Files vs Directories ## Files vs Directories
By default `--name-transform` will only apply to file names. The means only the leaf file name will be transformed. By default `--name-transform` will only apply to file names. The means only the
However some of the transforms would be better applied to the whole path or just directories. leaf file name will be transformed. However some of the transforms would be
To choose which which part of the file path is affected some tags can be added to the `--name-transform`. better applied to the whole path or just directories. To choose which which
part of the file path is affected some tags can be added to the `--name-transform`.
| Tag | Effect | | Tag | Effect |
|------|------| |------|------|
@@ -250,42 +269,58 @@ To choose which which part of the file path is affected some tags can be added t
| `dir` | Only transform name of directories - these may appear anywhere in the path | | `dir` | Only transform name of directories - these may appear anywhere in the path |
| `all` | Transform the entire path for files and directories | | `all` | Transform the entire path for files and directories |
This is used by adding the tag into the transform name like this: `--name-transform file,prefix=ABC` or `--name-transform dir,prefix=DEF`. This is used by adding the tag into the transform name like this:
`--name-transform file,prefix=ABC` or `--name-transform dir,prefix=DEF`.
For some conversions using all is more likely to be useful, for example `--name-transform all,nfc`. For some conversions using all is more likely to be useful, for example
`--name-transform all,nfc`.
Note that `--name-transform` may not add path separators `/` to the name. This will cause an error. Note that `--name-transform` may not add path separators `/` to the name.
This will cause an error.
# Ordering and Conflicts ## Ordering and Conflicts
* Transformations will be applied in the order specified by the user. - Transformations will be applied in the order specified by the user.
* If the `file` tag is in use (the default) then only the leaf name of files will be transformed. - If the `file` tag is in use (the default) then only the leaf name of files
* If the `dir` tag is in use then directories anywhere in the path will be transformed will be transformed.
* If the `all` tag is in use then directories and files anywhere in the path will be transformed - If the `dir` tag is in use then directories anywhere in the path will be
* Each transformation will be run one path segment at a time. transformed
* If a transformation adds a `/` or ends up with an empty path segment then that will be an error. - If the `all` tag is in use then directories and files anywhere in the path
* It is up to the user to put the transformations in a sensible order. will be transformed
* Conflicting transformations, such as `prefix` followed by `trimprefix` or `nfc` followed by `nfd`, are possible. - Each transformation will be run one path segment at a time.
* Instead of enforcing mutual exclusivity, transformations are applied in sequence as specified by the - If a transformation adds a `/` or ends up with an empty path segment then
user, allowing for intentional use cases (e.g., trimming one prefix before adding another). that will be an error.
* Users should be aware that certain combinations may lead to unexpected results and should verify - It is up to the user to put the transformations in a sensible order.
transformations using `--dry-run` before execution. - Conflicting transformations, such as `prefix` followed by `trimprefix` or
`nfc` followed by `nfd`, are possible.
- Instead of enforcing mutual exclusivity, transformations are applied in
sequence as specified by the user, allowing for intentional use cases
(e.g., trimming one prefix before adding another).
- Users should be aware that certain combinations may lead to unexpected
results and should verify transformations using `--dry-run` before execution.
# Race Conditions and Non-Deterministic Behavior ## Race Conditions and Non-Deterministic Behavior
Some transformations, such as `replace=old:new`, may introduce conflicts where multiple source files map to the same destination name. Some transformations, such as `replace=old:new`, may introduce conflicts where
This can lead to race conditions when performing concurrent transfers. It is up to the user to anticipate these. multiple source files map to the same destination name. This can lead to race
* If two files from the source are transformed into the same name at the destination, the final state may be non-deterministic. conditions when performing concurrent transfers. It is up to the user to
* Running rclone check after a sync using such transformations may erroneously report missing or differing files due to overwritten results. anticipate these.
- If two files from the source are transformed into the same name at the
destination, the final state may be non-deterministic.
- Running rclone check after a sync using such transformations may erroneously
report missing or differing files due to overwritten results.
To minimize risks, users should: To minimize risks, users should:
* Carefully review transformations that may introduce conflicts.
* Use `--dry-run` to inspect changes before executing a sync (but keep in mind that it won't show the effect of non-deterministic transformations).
* Avoid transformations that cause multiple distinct source files to map to the same destination name.
* Consider disabling concurrency with `--transfers=1` if necessary.
* Certain transformations (e.g. `prefix`) will have a multiplying effect every time they are used. Avoid these when using `bisync`.
- Carefully review transformations that may introduce conflicts.
- Use `--dry-run` to inspect changes before executing a sync (but keep in mind
that it won't show the effect of non-deterministic transformations).
- Avoid transformations that cause multiple distinct source files to map to the
same destination name.
- Consider disabling concurrency with `--transfers=1` if necessary.
- Certain transformations (e.g. `prefix`) will have a multiplying effect every
time they are used. Avoid these when using `bisync`.
``` ```
rclone convmv dest:path --name-transform XXX [flags] rclone convmv dest:path --name-transform XXX [flags]
@@ -306,7 +341,7 @@ See the [global flags page](/flags/) for global options not listed here.
Flags for anything which can copy a file Flags for anything which can copy a file
``` ```text
--check-first Do all the checks before starting transfers --check-first Do all the checks before starting transfers
-c, --checksum Check for changes with size & checksum (if available, or fallback to size only) -c, --checksum Check for changes with size & checksum (if available, or fallback to size only)
--compare-dest stringArray Include additional server-side paths during comparison --compare-dest stringArray Include additional server-side paths during comparison
@@ -347,7 +382,7 @@ Flags for anything which can copy a file
Important flags useful for most commands Important flags useful for most commands
``` ```text
-n, --dry-run Do a trial run with no permanent changes -n, --dry-run Do a trial run with no permanent changes
-i, --interactive Enable interactive mode -i, --interactive Enable interactive mode
-v, --verbose count Print lots more stuff (repeat for more) -v, --verbose count Print lots more stuff (repeat for more)
@@ -357,7 +392,7 @@ Important flags useful for most commands
Flags for filtering directory listings Flags for filtering directory listings
``` ```text
--delete-excluded Delete files on dest excluded from sync --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern --exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin) --exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
@@ -387,12 +422,17 @@ Flags for filtering directory listings
Flags for listing directories Flags for listing directories
``` ```text
--default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z) --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
--fast-list Use recursive list if available; uses more memory but fewer transactions --fast-list Use recursive list if available; uses more memory but fewer transactions
``` ```
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends. * [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends.
<!-- markdownlint-restore -->

View File

@@ -28,22 +28,30 @@ go there.
For example For example
rclone copy source:sourcepath dest:destpath ```sh
rclone copy source:sourcepath dest:destpath
```
Let's say there are two files in sourcepath Let's say there are two files in sourcepath
sourcepath/one.txt ```text
sourcepath/two.txt sourcepath/one.txt
sourcepath/two.txt
```
This copies them to This copies them to
destpath/one.txt ```text
destpath/two.txt destpath/one.txt
destpath/two.txt
```
Not to Not to
destpath/sourcepath/one.txt ```text
destpath/sourcepath/two.txt destpath/sourcepath/one.txt
destpath/sourcepath/two.txt
```
If you are familiar with `rsync`, rclone always works as if you had If you are familiar with `rsync`, rclone always works as if you had
written a trailing `/` - meaning "copy the contents of this directory". written a trailing `/` - meaning "copy the contents of this directory".
@@ -59,27 +67,30 @@ For example, if you have many files in /path/to/src but only a few of
them change every day, you can copy all the files which have changed them change every day, you can copy all the files which have changed
recently very efficiently like this: recently very efficiently like this:
rclone copy --max-age 24h --no-traverse /path/to/src remote: ```sh
rclone copy --max-age 24h --no-traverse /path/to/src remote:
```
Rclone will sync the modification times of files and directories if Rclone will sync the modification times of files and directories if
the backend supports it. If metadata syncing is required then use the the backend supports it. If metadata syncing is required then use the
`--metadata` flag. `--metadata` flag.
Note that the modification time and metadata for the root directory Note that the modification time and metadata for the root directory
will **not** be synced. See https://github.com/rclone/rclone/issues/7652 will **not** be synced. See [issue #7652](https://github.com/rclone/rclone/issues/7652)
for more info. for more info.
**Note**: Use the `-P`/`--progress` flag to view real-time transfer statistics. **Note**: Use the `-P`/`--progress` flag to view real-time transfer statistics.
**Note**: Use the `--dry-run` or the `--interactive`/`-i` flag to test without copying anything. **Note**: Use the `--dry-run` or the `--interactive`/`-i` flag to test without
copying anything.
# Logger Flags ## Logger Flags
The `--differ`, `--missing-on-dst`, `--missing-on-src`, `--match` and `--error` flags write paths, The `--differ`, `--missing-on-dst`, `--missing-on-src`, `--match` and `--error`
one per line, to the file name (or stdout if it is `-`) supplied. What they write is described flags write paths, one per line, to the file name (or stdout if it is `-`)
in the help below. For example `--differ` will write all paths which are present supplied. What they write is described in the help below. For example
on both the source and destination but different. `--differ` will write all paths which are present on both the source and
destination but different.
The `--combined` flag will write a file (or stdout) which contains all 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 file paths with a symbol and then a space and then the path to tell
@@ -112,9 +123,7 @@ are not currently supported:
Note also that each file is logged during execution, as opposed to after, so it Note also that each file is logged during execution, as opposed to after, so it
is most useful as a predictor of what SHOULD happen to each file is most useful as a predictor of what SHOULD happen to each file
(which may or may not match what actually DID.) (which may or may not match what actually DID).
``` ```
rclone copy source:path dest:path [flags] rclone copy source:path dest:path [flags]
@@ -150,7 +159,7 @@ See the [global flags page](/flags/) for global options not listed here.
Flags for anything which can copy a file Flags for anything which can copy a file
``` ```text
--check-first Do all the checks before starting transfers --check-first Do all the checks before starting transfers
-c, --checksum Check for changes with size & checksum (if available, or fallback to size only) -c, --checksum Check for changes with size & checksum (if available, or fallback to size only)
--compare-dest stringArray Include additional server-side paths during comparison --compare-dest stringArray Include additional server-side paths during comparison
@@ -191,7 +200,7 @@ Flags for anything which can copy a file
Important flags useful for most commands Important flags useful for most commands
``` ```text
-n, --dry-run Do a trial run with no permanent changes -n, --dry-run Do a trial run with no permanent changes
-i, --interactive Enable interactive mode -i, --interactive Enable interactive mode
-v, --verbose count Print lots more stuff (repeat for more) -v, --verbose count Print lots more stuff (repeat for more)
@@ -201,7 +210,7 @@ Important flags useful for most commands
Flags for filtering directory listings Flags for filtering directory listings
``` ```text
--delete-excluded Delete files on dest excluded from sync --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern --exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin) --exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
@@ -231,12 +240,17 @@ Flags for filtering directory listings
Flags for listing directories Flags for listing directories
``` ```text
--default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z) --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
--fast-list Use recursive list if available; uses more memory but fewer transactions --fast-list Use recursive list if available; uses more memory but fewer transactions
``` ```
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends. * [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends.
<!-- markdownlint-restore -->

View File

@@ -19,33 +19,40 @@ name. If the source is a directory then it acts exactly like the
So So
rclone copyto src dst ```sh
rclone copyto src dst
```
where src and dst are rclone paths, either remote:path or where src and dst are rclone paths, either `remote:path` or
/path/to/local or C:\windows\path\if\on\windows. `/path/to/local` or `C:\windows\path\if\on\windows`.
This will: This will:
if src is file ```text
copy it to dst, overwriting an existing file if it exists if src is file
if src is directory copy it to dst, overwriting an existing file if it exists
copy it to dst, overwriting existing files if they exist if src is directory
see copy command for full details 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 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 by size and modification time or MD5SUM. It doesn't delete files from
the destination. the destination.
*If you are looking to copy just a byte range of a file, please see 'rclone cat --offset X --count Y'* *If you are looking to copy just a byte range of a file, please see
`rclone cat --offset X --count Y`.*
**Note**: Use the `-P`/`--progress` flag to view real-time transfer statistics **Note**: Use the `-P`/`--progress` flag to view
real-time transfer statistics.
# Logger Flags ## Logger Flags
The `--differ`, `--missing-on-dst`, `--missing-on-src`, `--match` and `--error` flags write paths, The `--differ`, `--missing-on-dst`, `--missing-on-src`, `--match` and `--error`
one per line, to the file name (or stdout if it is `-`) supplied. What they write is described flags write paths, one per line, to the file name (or stdout if it is `-`)
in the help below. For example `--differ` will write all paths which are present supplied. What they write is described in the help below. For example
on both the source and destination but different. `--differ` will write all paths which are present on both the source and
destination but different.
The `--combined` flag will write a file (or stdout) which contains all 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 file paths with a symbol and then a space and then the path to tell
@@ -78,9 +85,7 @@ are not currently supported:
Note also that each file is logged during execution, as opposed to after, so it Note also that each file is logged during execution, as opposed to after, so it
is most useful as a predictor of what SHOULD happen to each file is most useful as a predictor of what SHOULD happen to each file
(which may or may not match what actually DID.) (which may or may not match what actually DID).
``` ```
rclone copyto source:path dest:path [flags] rclone copyto source:path dest:path [flags]
@@ -115,7 +120,7 @@ See the [global flags page](/flags/) for global options not listed here.
Flags for anything which can copy a file Flags for anything which can copy a file
``` ```text
--check-first Do all the checks before starting transfers --check-first Do all the checks before starting transfers
-c, --checksum Check for changes with size & checksum (if available, or fallback to size only) -c, --checksum Check for changes with size & checksum (if available, or fallback to size only)
--compare-dest stringArray Include additional server-side paths during comparison --compare-dest stringArray Include additional server-side paths during comparison
@@ -156,7 +161,7 @@ Flags for anything which can copy a file
Important flags useful for most commands Important flags useful for most commands
``` ```text
-n, --dry-run Do a trial run with no permanent changes -n, --dry-run Do a trial run with no permanent changes
-i, --interactive Enable interactive mode -i, --interactive Enable interactive mode
-v, --verbose count Print lots more stuff (repeat for more) -v, --verbose count Print lots more stuff (repeat for more)
@@ -166,7 +171,7 @@ Important flags useful for most commands
Flags for filtering directory listings Flags for filtering directory listings
``` ```text
--delete-excluded Delete files on dest excluded from sync --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern --exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin) --exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
@@ -196,12 +201,17 @@ Flags for filtering directory listings
Flags for listing directories Flags for listing directories
``` ```text
--default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z) --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
--fast-list Use recursive list if available; uses more memory but fewer transactions --fast-list Use recursive list if available; uses more memory but fewer transactions
``` ```
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends. * [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends.
<!-- markdownlint-restore -->

View File

@@ -22,7 +22,7 @@ set in HTTP headers, it will be used instead of the name from the URL.
With `--print-filename` in addition, the resulting file name will be With `--print-filename` in addition, the resulting file name will be
printed. printed.
Setting `--no-clobber` will prevent overwriting file on the Setting `--no-clobber` will prevent overwriting file on the
destination if there is one with the same name. destination if there is one with the same name.
Setting `--stdout` or making the output file name `-` Setting `--stdout` or making the output file name `-`
@@ -38,8 +38,6 @@ If you can't get `rclone copyurl` to work then here are some things you can try:
- `--user agent curl` - some sites have whitelists for curl's user-agent - try that - `--user agent curl` - some sites have whitelists for curl's user-agent - try that
- Make sure the site works with `curl` directly - Make sure the site works with `curl` directly
``` ```
rclone copyurl https://example.com dest:path [flags] rclone copyurl https://example.com dest:path [flags]
``` ```
@@ -62,7 +60,7 @@ See the [global flags page](/flags/) for global options not listed here.
Important flags useful for most commands Important flags useful for most commands
``` ```text
-n, --dry-run Do a trial run with no permanent changes -n, --dry-run Do a trial run with no permanent changes
-i, --interactive Enable interactive mode -i, --interactive Enable interactive mode
-v, --verbose count Print lots more stuff (repeat for more) -v, --verbose count Print lots more stuff (repeat for more)
@@ -70,5 +68,10 @@ Important flags useful for most commands
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends. * [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends.
<!-- markdownlint-restore -->

View File

@@ -24,14 +24,18 @@ checksum of the file it has just encrypted.
Use it like this Use it like this
rclone cryptcheck /path/to/files encryptedremote:path ```sh
rclone cryptcheck /path/to/files encryptedremote:path
```
You can use it like this also, but that will involve downloading all You can use it like this also, but that will involve downloading all
the files in remote:path. the files in `remote:path`.
rclone cryptcheck remote:path encryptedremote:path ```sh
rclone cryptcheck remote:path encryptedremote:path
```
After it has run it will log the status of the encryptedremote:. After it has run it will log the status of the `encryptedremote:`.
If you supply the `--one-way` flag, it will only check that files in If you supply the `--one-way` flag, it will only check that files in
the source match the files in the destination, not the other way the source match the files in the destination, not the other way
@@ -57,7 +61,6 @@ you what happened to it. These are reminiscent of diff files.
The default number of parallel checks is 8. See the [--checkers](/docs/#checkers-int) The default number of parallel checks is 8. See the [--checkers](/docs/#checkers-int)
option for more information. option for more information.
``` ```
rclone cryptcheck remote:path cryptedremote:path [flags] rclone cryptcheck remote:path cryptedremote:path [flags]
``` ```
@@ -82,7 +85,7 @@ See the [global flags page](/flags/) for global options not listed here.
Flags used for check commands Flags used for check commands
``` ```text
--max-backlog int Maximum number of objects in sync or check backlog (default 10000) --max-backlog int Maximum number of objects in sync or check backlog (default 10000)
``` ```
@@ -90,7 +93,7 @@ Flags used for check commands
Flags for filtering directory listings Flags for filtering directory listings
``` ```text
--delete-excluded Delete files on dest excluded from sync --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern --exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin) --exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
@@ -120,12 +123,17 @@ Flags for filtering directory listings
Flags for listing directories Flags for listing directories
``` ```text
--default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z) --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
--fast-list Use recursive list if available; uses more memory but fewer transactions --fast-list Use recursive list if available; uses more memory but fewer transactions
``` ```
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends. * [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends.
<!-- markdownlint-restore -->

View File

@@ -17,13 +17,13 @@ If you supply the `--reverse` flag, it will return encrypted file names.
use it like this use it like this
rclone cryptdecode encryptedremote: encryptedfilename1 encryptedfilename2 ```sh
rclone cryptdecode encryptedremote: encryptedfilename1 encryptedfilename2
rclone cryptdecode --reverse encryptedremote: filename1 filename2 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](/crypt/) overlay for more info.
Another way to accomplish this is by using the `rclone backend encode` (or `decode`)
command. See the documentation on the [crypt](/crypt/) overlay for more info.
``` ```
rclone cryptdecode encryptedremote: encryptedfilename [flags] rclone cryptdecode encryptedremote: encryptedfilename [flags]
@@ -40,5 +40,10 @@ See the [global flags page](/flags/) for global options not listed here.
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends. * [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends.
<!-- markdownlint-restore -->

View File

@@ -30,14 +30,15 @@ directories have been merged.
Next, if deduping by name, for every group of duplicate file names / Next, if deduping by name, for every group of duplicate file names /
hashes, it will delete all but one identical file it finds without 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. 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 `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 same file path and the same hash. If the backend does not support
Google Drive) then they will never be found to be identical. If you hashes (e.g. crypt wrapping Google Drive) then they will never be found
use the `--size-only` flag then files will be considered to be identical. If you use the `--size-only` flag then files
identical if they have the same size (any hash will be ignored). This will be considered identical if they have the same size (any hash will be
can be useful on crypt backends which do not support hashes. ignored). This can be useful on crypt backends which do not support hashes.
Next rclone will resolve the remaining duplicates. Exactly which Next rclone will resolve the remaining duplicates. Exactly which
action is taken depends on the dedupe mode. By default, rclone will action is taken depends on the dedupe mode. By default, rclone will
@@ -50,71 +51,82 @@ Here is an example run.
Before - with duplicates Before - with duplicates
$ rclone lsl drive:dupes ```sh
6048320 2016-03-05 16:23:16.798000000 one.txt $ rclone lsl drive:dupes
6048320 2016-03-05 16:23:11.775000000 one.txt 6048320 2016-03-05 16:23:16.798000000 one.txt
564374 2016-03-05 16:23:06.731000000 one.txt 6048320 2016-03-05 16:23:11.775000000 one.txt
6048320 2016-03-05 16:18:26.092000000 one.txt 564374 2016-03-05 16:23:06.731000000 one.txt
6048320 2016-03-05 16:22:46.185000000 two.txt 6048320 2016-03-05 16:18:26.092000000 one.txt
1744073 2016-03-05 16:22:38.104000000 two.txt 6048320 2016-03-05 16:22:46.185000000 two.txt
564374 2016-03-05 16:22:52.118000000 two.txt 1744073 2016-03-05 16:22:38.104000000 two.txt
564374 2016-03-05 16:22:52.118000000 two.txt
```
Now the `dedupe` session Now the `dedupe` session
$ rclone dedupe drive:dupes ```sh
2016/03/05 16:24:37 Google drive root 'dupes': Looking for duplicates using interactive mode. $ rclone dedupe drive:dupes
one.txt: Found 4 files with duplicate names 2016/03/05 16:24:37 Google drive root 'dupes': Looking for duplicates using interactive mode.
one.txt: Deleting 2/3 identical duplicates (MD5 "1eedaa9fe86fd4b8632e2ac549403b36") one.txt: Found 4 files with duplicate names
one.txt: 2 duplicates remain one.txt: Deleting 2/3 identical duplicates (MD5 "1eedaa9fe86fd4b8632e2ac549403b36")
1: 6048320 bytes, 2016-03-05 16:23:16.798000000, MD5 1eedaa9fe86fd4b8632e2ac549403b36 one.txt: 2 duplicates remain
2: 564374 bytes, 2016-03-05 16:23:06.731000000, MD5 7594e7dc9fc28f727c42ee3e0749de81 1: 6048320 bytes, 2016-03-05 16:23:16.798000000, MD5 1eedaa9fe86fd4b8632e2ac549403b36
s) Skip and do nothing 2: 564374 bytes, 2016-03-05 16:23:06.731000000, MD5 7594e7dc9fc28f727c42ee3e0749de81
k) Keep just one (choose which in next step) s) Skip and do nothing
r) Rename all to be different (by changing file.jpg to file-1.jpg) k) Keep just one (choose which in next step)
s/k/r> k r) Rename all to be different (by changing file.jpg to file-1.jpg)
Enter the number of the file to keep> 1 s/k/r> k
one.txt: Deleted 1 extra copies Enter the number of the file to keep> 1
two.txt: Found 3 files with duplicate names one.txt: Deleted 1 extra copies
two.txt: 3 duplicates remain two.txt: Found 3 files with duplicate names
1: 564374 bytes, 2016-03-05 16:22:52.118000000, MD5 7594e7dc9fc28f727c42ee3e0749de81 two.txt: 3 duplicates remain
2: 6048320 bytes, 2016-03-05 16:22:46.185000000, MD5 1eedaa9fe86fd4b8632e2ac549403b36 1: 564374 bytes, 2016-03-05 16:22:52.118000000, MD5 7594e7dc9fc28f727c42ee3e0749de81
3: 1744073 bytes, 2016-03-05 16:22:38.104000000, MD5 851957f7fb6f0bc4ce76be966d336802 2: 6048320 bytes, 2016-03-05 16:22:46.185000000, MD5 1eedaa9fe86fd4b8632e2ac549403b36
s) Skip and do nothing 3: 1744073 bytes, 2016-03-05 16:22:38.104000000, MD5 851957f7fb6f0bc4ce76be966d336802
k) Keep just one (choose which in next step) s) Skip and do nothing
r) Rename all to be different (by changing file.jpg to file-1.jpg) k) Keep just one (choose which in next step)
s/k/r> r r) Rename all to be different (by changing file.jpg to file-1.jpg)
two-1.txt: renamed from: two.txt s/k/r> r
two-2.txt: renamed from: two.txt two-1.txt: renamed from: two.txt
two-3.txt: renamed from: two.txt two-2.txt: renamed from: two.txt
two-3.txt: renamed from: two.txt
```
The result being The result being
$ rclone lsl drive:dupes ```sh
6048320 2016-03-05 16:23:16.798000000 one.txt $ rclone lsl drive:dupes
564374 2016-03-05 16:22:52.118000000 two-1.txt 6048320 2016-03-05 16:23:16.798000000 one.txt
6048320 2016-03-05 16:22:46.185000000 two-2.txt 564374 2016-03-05 16:22:52.118000000 two-1.txt
1744073 2016-03-05 16:22:38.104000000 two-3.txt 6048320 2016-03-05 16:22:46.185000000 two-2.txt
1744073 2016-03-05 16:22:38.104000000 two-3.txt
```
Dedupe can be run non interactively using the `--dedupe-mode` flag or by using an extra parameter with the same value Dedupe can be run non interactively using the `--dedupe-mode` flag
or by using an extra parameter with the same value
* `--dedupe-mode interactive` - interactive as above. - `--dedupe-mode interactive` - interactive as above.
* `--dedupe-mode skip` - removes identical files then skips anything left. - `--dedupe-mode skip` - removes identical files then skips anything left.
* `--dedupe-mode first` - removes identical files then keeps the first one. - `--dedupe-mode first` - removes identical files then keeps the first one.
* `--dedupe-mode newest` - removes identical files then keeps the newest one. - `--dedupe-mode newest` - removes identical files then keeps the newest one.
* `--dedupe-mode oldest` - removes identical files then keeps the oldest one. - `--dedupe-mode oldest` - removes identical files then keeps the oldest one.
* `--dedupe-mode largest` - removes identical files then keeps the largest one. - `--dedupe-mode largest` - removes identical files then keeps the largest one.
* `--dedupe-mode smallest` - removes identical files then keeps the smallest one. - `--dedupe-mode smallest` - removes identical files then keeps the smallest one.
* `--dedupe-mode rename` - removes identical files then renames the rest to be different. - `--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. - `--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" ```sh
rclone dedupe --dedupe-mode rename "drive:Google Photos"
```
Or Or
rclone dedupe rename "drive:Google Photos" ```sh
rclone dedupe rename "drive:Google Photos"
```
``` ```
rclone dedupe [mode] remote:path [flags] rclone dedupe [mode] remote:path [flags]
@@ -135,7 +147,7 @@ See the [global flags page](/flags/) for global options not listed here.
Important flags useful for most commands Important flags useful for most commands
``` ```text
-n, --dry-run Do a trial run with no permanent changes -n, --dry-run Do a trial run with no permanent changes
-i, --interactive Enable interactive mode -i, --interactive Enable interactive mode
-v, --verbose count Print lots more stuff (repeat for more) -v, --verbose count Print lots more stuff (repeat for more)
@@ -143,5 +155,10 @@ Important flags useful for most commands
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends. * [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends.
<!-- markdownlint-restore -->

View File

@@ -17,19 +17,23 @@ obeys include/exclude filters so can be used to selectively delete files.
alone. If you want to delete a directory and all of its contents use alone. If you want to delete a directory and all of its contents use
the [purge](/commands/rclone_purge/) command. the [purge](/commands/rclone_purge/) command.
If you supply the `--rmdirs` flag, it will remove all empty directories along with it. If you supply the `--rmdirs` flag, it will remove all empty directories along
You can also use the separate command [rmdir](/commands/rclone_rmdir/) or with it. You can also use the separate command [rmdir](/commands/rclone_rmdir/)
[rmdirs](/commands/rclone_rmdirs/) to delete empty directories only. or [rmdirs](/commands/rclone_rmdirs/) to delete empty directories only.
For example, to delete all files bigger than 100 MiB, you may first want to For example, to delete all files bigger than 100 MiB, you may first want to
check what would be deleted (use either): check what would be deleted (use either):
rclone --min-size 100M lsl remote:path ```sh
rclone --dry-run --min-size 100M delete remote:path rclone --min-size 100M lsl remote:path
rclone --dry-run --min-size 100M delete remote:path
```
Then proceed with the actual delete: Then proceed with the actual delete:
rclone --min-size 100M delete remote:path ```sh
rclone --min-size 100M delete remote:path
```
That reads "delete everything with a minimum size of 100 MiB", hence That reads "delete everything with a minimum size of 100 MiB", hence
delete all files bigger than 100 MiB. delete all files bigger than 100 MiB.
@@ -37,7 +41,6 @@ delete all files bigger than 100 MiB.
**Important**: Since this can cause data loss, test first with the **Important**: Since this can cause data loss, test first with the
`--dry-run` or the `--interactive`/`-i` flag. `--dry-run` or the `--interactive`/`-i` flag.
``` ```
rclone delete remote:path [flags] rclone delete remote:path [flags]
``` ```
@@ -56,7 +59,7 @@ See the [global flags page](/flags/) for global options not listed here.
Important flags useful for most commands Important flags useful for most commands
``` ```text
-n, --dry-run Do a trial run with no permanent changes -n, --dry-run Do a trial run with no permanent changes
-i, --interactive Enable interactive mode -i, --interactive Enable interactive mode
-v, --verbose count Print lots more stuff (repeat for more) -v, --verbose count Print lots more stuff (repeat for more)
@@ -66,7 +69,7 @@ Important flags useful for most commands
Flags for filtering directory listings Flags for filtering directory listings
``` ```text
--delete-excluded Delete files on dest excluded from sync --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern --exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin) --exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
@@ -96,12 +99,17 @@ Flags for filtering directory listings
Flags for listing directories Flags for listing directories
``` ```text
--default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z) --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
--fast-list Use recursive list if available; uses more memory but fewer transactions --fast-list Use recursive list if available; uses more memory but fewer transactions
``` ```
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends. * [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends.
<!-- markdownlint-restore -->

View File

@@ -11,9 +11,8 @@ Remove a single file from remote.
## Synopsis ## Synopsis
Remove a single file from remote. Unlike `delete` it cannot be used to 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, remove a directory and it doesn't obey include/exclude filters - if the
it will always be removed. specified file exists, it will always be removed.
``` ```
rclone deletefile remote:path [flags] rclone deletefile remote:path [flags]
@@ -32,7 +31,7 @@ See the [global flags page](/flags/) for global options not listed here.
Important flags useful for most commands Important flags useful for most commands
``` ```text
-n, --dry-run Do a trial run with no permanent changes -n, --dry-run Do a trial run with no permanent changes
-i, --interactive Enable interactive mode -i, --interactive Enable interactive mode
-v, --verbose count Print lots more stuff (repeat for more) -v, --verbose count Print lots more stuff (repeat for more)
@@ -40,5 +39,10 @@ Important flags useful for most commands
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends. * [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends.
<!-- markdownlint-restore -->

View File

@@ -28,5 +28,10 @@ See the [global flags page](/flags/) for global options not listed here.
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends. * [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends.
<!-- markdownlint-restore -->

View File

@@ -18,8 +18,7 @@ users.
[git-annex]: https://git-annex.branchable.com/ [git-annex]: https://git-annex.branchable.com/
Installation on Linux ## Installation on Linux
---------------------
1. Skip this step if your version of git-annex is [10.20240430] or newer. 1. Skip this step if your version of git-annex is [10.20240430] or newer.
Otherwise, you must create a symlink somewhere on your PATH with a particular Otherwise, you must create a symlink somewhere on your PATH with a particular
@@ -82,7 +81,6 @@ Installation on Linux
Happy annexing! Happy annexing!
``` ```
rclone gitannex [flags] rclone gitannex [flags]
``` ```
@@ -97,5 +95,10 @@ See the [global flags page](/flags/) for global options not listed here.
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends. * [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends.
<!-- markdownlint-restore -->

View File

@@ -29,25 +29,28 @@ as a relative path).
Run without a hash to see the list of all supported hashes, e.g. Run without a hash to see the list of all supported hashes, e.g.
$ rclone hashsum ```sh
Supported hashes are: $ rclone hashsum
* md5 Supported hashes are:
* sha1 * md5
* whirlpool * sha1
* crc32 * whirlpool
* sha256 * crc32
* sha512 * sha256
* blake3 * sha512
* xxh3 * blake3
* xxh128 * xxh3
* xxh128
```
Then Then
$ rclone hashsum MD5 remote:path ```sh
rclone hashsum MD5 remote:path
```
Note that hash names are case insensitive and values are output in lower case. Note that hash names are case insensitive and values are output in lower case.
``` ```
rclone hashsum [<hash> remote:path] [flags] rclone hashsum [<hash> remote:path] [flags]
``` ```
@@ -69,7 +72,7 @@ See the [global flags page](/flags/) for global options not listed here.
Flags for filtering directory listings Flags for filtering directory listings
``` ```text
--delete-excluded Delete files on dest excluded from sync --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern --exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin) --exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
@@ -99,12 +102,17 @@ Flags for filtering directory listings
Flags for listing directories Flags for listing directories
``` ```text
--default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z) --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
--fast-list Use recursive list if available; uses more memory but fewer transactions --fast-list Use recursive list if available; uses more memory but fewer transactions
``` ```
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends. * [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends.
<!-- markdownlint-restore -->

View File

@@ -12,10 +12,12 @@ Generate public link to file/folder.
Create, retrieve or remove a public link to the given file or folder. Create, retrieve or remove a public link to the given file or folder.
rclone link remote:path/to/file ```sh
rclone link remote:path/to/folder/ rclone link remote:path/to/file
rclone link --unlink remote:path/to/folder/ rclone link remote:path/to/folder/
rclone link --expire 1d remote:path/to/file 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 If you supply the --expire flag, it will set the expiration time
otherwise it will use the default (100 years). **Note** not all otherwise it will use the default (100 years). **Note** not all
@@ -28,10 +30,9 @@ don't will just ignore it.
If successful, the last line of the output will contain the If successful, the last line of the output will contain the
link. Exact capabilities depend on the remote, but the link will link. Exact capabilities depend on the remote, but the link will
always by default be created with the least constraints e.g. no always by default be created with the least constraints - e.g. no
expiry, no password protection, accessible without account. expiry, no password protection, accessible without account.
``` ```
rclone link remote:path [flags] rclone link remote:path [flags]
``` ```
@@ -48,5 +49,10 @@ See the [global flags page](/flags/) for global options not listed here.
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends. * [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends.
<!-- markdownlint-restore -->

View File

@@ -10,7 +10,6 @@ List all the remotes in the config file and defined in environment variables.
## Synopsis ## Synopsis
Lists all the available remotes from the config file, or the remotes matching Lists all the available remotes from the config file, or the remotes matching
an optional filter. an optional filter.
@@ -24,7 +23,6 @@ Result can be filtered by a filter argument which applies to all attributes,
and/or filter flags specific for each attribute. The values must be specified and/or filter flags specific for each attribute. The values must be specified
according to regular rclone filtering pattern syntax. according to regular rclone filtering pattern syntax.
``` ```
rclone listremotes [<filter>] [flags] rclone listremotes [<filter>] [flags]
``` ```
@@ -46,5 +44,10 @@ See the [global flags page](/flags/) for global options not listed here.
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends. * [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends.
<!-- markdownlint-restore -->

View File

@@ -12,24 +12,25 @@ List the objects in the path with size and path.
Lists the objects in the source path to standard output in a human Lists the objects in the source path to standard output in a human
readable format with size and path. Recurses by default. readable format with size and path. Recurses by default.
Eg E.g.
$ rclone ls swift:bucket
60295 bevajer5jef
90613 canole
94467 diwogej7
37600 fubuwic
```sh
$ rclone ls swift:bucket
60295 bevajer5jef
90613 canole
94467 diwogej7
37600 fubuwic
```
Any of the filtering options can be applied to this command. Any of the filtering options can be applied to this command.
There are several related list commands There are several related list commands
* `ls` to list size and path of objects only - `ls` to list size and path of objects only
* `lsl` to list modification time, size and path of objects only - `lsl` to list modification time, size and path of objects only
* `lsd` to list directories only - `lsd` to list directories only
* `lsf` to list objects and directories in easy to parse format - `lsf` to list objects and directories in easy to parse format
* `lsjson` to list objects and directories in JSON format - `lsjson` to list objects and directories in JSON format
`ls`,`lsl`,`lsd` are designed to be human-readable. `ls`,`lsl`,`lsd` are designed to be human-readable.
`lsf` is designed to be human and machine-readable. `lsf` is designed to be human and machine-readable.
@@ -37,13 +38,13 @@ There are several related list commands
Note that `ls` and `lsl` recurse by default - use `--max-depth 1` to stop the recursion. 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. The other list commands `lsd`,`lsf`,`lsjson` do not recurse by default -
use `-R` to make them recurse.
Listing a nonexistent directory will produce an error except for Listing a nonexistent directory will produce an error except for
remotes which can't have empty directories (e.g. s3, swift, or gcs - remotes which can't have empty directories (e.g. s3, swift, or gcs -
the bucket-based remotes). the bucket-based remotes).
``` ```
rclone ls remote:path [flags] rclone ls remote:path [flags]
``` ```
@@ -61,7 +62,7 @@ See the [global flags page](/flags/) for global options not listed here.
Flags for filtering directory listings Flags for filtering directory listings
``` ```text
--delete-excluded Delete files on dest excluded from sync --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern --exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin) --exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
@@ -91,12 +92,17 @@ Flags for filtering directory listings
Flags for listing directories Flags for listing directories
``` ```text
--default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z) --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
--fast-list Use recursive list if available; uses more memory but fewer transactions --fast-list Use recursive list if available; uses more memory but fewer transactions
``` ```
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends. * [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends.
<!-- markdownlint-restore -->

View File

@@ -15,31 +15,34 @@ recurse by default. Use the `-R` flag to recurse.
This command lists the total size of the directory (if known, -1 if This command lists the total size of the directory (if known, -1 if
not), the modification time (if known, the current time if not), the not), the modification time (if known, the current time if not), the
number of objects in the directory (if known, -1 if not) and the name number of objects in the directory (if known, -1 if not) and the name
of the directory, Eg of the directory, E.g.
$ rclone lsd swift: ```sh
494000 2018-04-26 08:43:20 10000 10000files $ rclone lsd swift:
65 2018-04-26 08:43:20 1 1File 494000 2018-04-26 08:43:20 10000 10000files
65 2018-04-26 08:43:20 1 1File
```
Or Or
$ rclone lsd drive:test ```sh
-1 2016-10-17 17:41:53 -1 1000files $ rclone lsd drive:test
-1 2017-01-03 14:40:54 -1 2500files -1 2016-10-17 17:41:53 -1 1000files
-1 2017-07-08 14:39:28 -1 4000files -1 2017-01-03 14:40:54 -1 2500files
-1 2017-07-08 14:39:28 -1 4000files
```
If you just want the directory names use `rclone lsf --dirs-only`. If you just want the directory names use `rclone lsf --dirs-only`.
Any of the filtering options can be applied to this command. Any of the filtering options can be applied to this command.
There are several related list commands There are several related list commands
* `ls` to list size and path of objects only - `ls` to list size and path of objects only
* `lsl` to list modification time, size and path of objects only - `lsl` to list modification time, size and path of objects only
* `lsd` to list directories only - `lsd` to list directories only
* `lsf` to list objects and directories in easy to parse format - `lsf` to list objects and directories in easy to parse format
* `lsjson` to list objects and directories in JSON format - `lsjson` to list objects and directories in JSON format
`ls`,`lsl`,`lsd` are designed to be human-readable. `ls`,`lsl`,`lsd` are designed to be human-readable.
`lsf` is designed to be human and machine-readable. `lsf` is designed to be human and machine-readable.
@@ -47,13 +50,13 @@ There are several related list commands
Note that `ls` and `lsl` recurse by default - use `--max-depth 1` to stop the recursion. 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. The other list commands `lsd`,`lsf`,`lsjson` do not recurse by default -
use `-R` to make them recurse.
Listing a nonexistent directory will produce an error except for Listing a nonexistent directory will produce an error except for
remotes which can't have empty directories (e.g. s3, swift, or gcs - remotes which can't have empty directories (e.g. s3, swift, or gcs -
the bucket-based remotes). the bucket-based remotes).
``` ```
rclone lsd remote:path [flags] rclone lsd remote:path [flags]
``` ```
@@ -72,7 +75,7 @@ See the [global flags page](/flags/) for global options not listed here.
Flags for filtering directory listings Flags for filtering directory listings
``` ```text
--delete-excluded Delete files on dest excluded from sync --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern --exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin) --exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
@@ -102,12 +105,17 @@ Flags for filtering directory listings
Flags for listing directories Flags for listing directories
``` ```text
--default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z) --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
--fast-list Use recursive list if available; uses more memory but fewer transactions --fast-list Use recursive list if available; uses more memory but fewer transactions
``` ```
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends. * [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends.
<!-- markdownlint-restore -->

View File

@@ -15,41 +15,47 @@ 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, default this will just be the names of the objects and directories,
one per line. The directories will have a / suffix. one per line. The directories will have a / suffix.
Eg E.g.
$ rclone lsf swift:bucket ```sh
bevajer5jef $ rclone lsf swift:bucket
canole bevajer5jef
diwogej7 canole
ferejej3gux/ diwogej7
fubuwic ferejej3gux/
fubuwic
```
Use the `--format` option to control what gets listed. By default this 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 is just the path, but you can use these parameters to control the
output: output:
p - path ```text
s - size p - path
t - modification time s - size
h - hash t - modification time
i - ID of object h - hash
o - Original ID of underlying object i - ID of object
m - MimeType of object if known o - Original ID of underlying object
e - encrypted name m - MimeType of object if known
T - tier of storage if known, e.g. "Hot" or "Cool" e - encrypted name
M - Metadata of object in JSON blob format, eg {"key":"value"} T - tier of storage if known, e.g. "Hot" or "Cool"
M - Metadata of object in JSON blob format, eg {"key":"value"}
```
So if you wanted the path, size and modification time, you would use So if you wanted the path, size and modification time, you would use
`--format "pst"`, or maybe `--format "tsp"` to put the path last. `--format "pst"`, or maybe `--format "tsp"` to put the path last.
Eg E.g.
$ rclone lsf --format "tsp" swift:bucket ```sh
2016-06-25 18:55:41;60295;bevajer5jef $ rclone lsf --format "tsp" swift:bucket
2016-06-25 18:55:43;90613;canole 2016-06-25 18:55:41;60295;bevajer5jef
2016-06-25 18:55:43;94467;diwogej7 2016-06-25 18:55:43;90613;canole
2018-04-26 08:50:45;0;ferejej3gux/ 2016-06-25 18:55:43;94467;diwogej7
2016-06-25 18:55:40;37600;fubuwic 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, 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 use the `--hash` flag to change which hash you want. Note that this
@@ -60,16 +66,20 @@ 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 . ```sh
rclone lsf -R --hash MD5 --format hp --separator " " --files-only .
```
Eg E.g.
$ rclone lsf -R --hash MD5 --format hp --separator " " --files-only swift:bucket ```sh
7908e352297f0f530b84a756f188baa3 bevajer5jef $ rclone lsf -R --hash MD5 --format hp --separator " " --files-only swift:bucket
cd65ac234e6fea5925974a51cdd865cc canole 7908e352297f0f530b84a756f188baa3 bevajer5jef
03b5341b4f234b9d984d03ad076bae91 diwogej7 cd65ac234e6fea5925974a51cdd865cc canole
8fd37c3810dd660778137ac3a66cc06d fubuwic 03b5341b4f234b9d984d03ad076bae91 diwogej7
99713e14a4c4ff553acaf1930fad985b gixacuh7ku 8fd37c3810dd660778137ac3a66cc06d fubuwic
99713e14a4c4ff553acaf1930fad985b gixacuh7ku
```
(Though "rclone md5sum ." is an easier way of typing this.) (Though "rclone md5sum ." is an easier way of typing this.)
@@ -77,24 +87,28 @@ By default the separator is ";" this can be changed with the
`--separator` flag. Note that separators aren't escaped in the path so `--separator` flag. Note that separators aren't escaped in the path so
putting it last is a good strategy. putting it last is a good strategy.
Eg E.g.
$ rclone lsf --separator "," --format "tshp" swift:bucket ```sh
2016-06-25 18:55:41,60295,7908e352297f0f530b84a756f188baa3,bevajer5jef $ rclone lsf --separator "," --format "tshp" swift:bucket
2016-06-25 18:55:43,90613,cd65ac234e6fea5925974a51cdd865cc,canole 2016-06-25 18:55:41,60295,7908e352297f0f530b84a756f188baa3,bevajer5jef
2016-06-25 18:55:43,94467,03b5341b4f234b9d984d03ad076bae91,diwogej7 2016-06-25 18:55:43,90613,cd65ac234e6fea5925974a51cdd865cc,canole
2018-04-26 08:52:53,0,,ferejej3gux/ 2016-06-25 18:55:43,94467,03b5341b4f234b9d984d03ad076bae91,diwogej7
2016-06-25 18:55:40,37600,8fd37c3810dd660778137ac3a66cc06d,fubuwic 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 " You can output in CSV standard format. This will escape things in "
if they contain , if they contain,
Eg E.g.
$ rclone lsf --csv --files-only --format ps remote:path ```sh
test.log,22355 $ rclone lsf --csv --files-only --format ps remote:path
test.sh,449 test.log,22355
"this file contains a comma, in the file name.txt",6 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 Note that the `--absolute` parameter is useful for making lists of files
to pass to an rclone copy with the `--files-from-raw` flag. to pass to an rclone copy with the `--files-from-raw` flag.
@@ -102,32 +116,36 @@ 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 For example, to find all the files modified within one day and copy
those only (without traversing the whole directory structure): those only (without traversing the whole directory structure):
rclone lsf --absolute --files-only --max-age 1d /path/to/local > new_files ```sh
rclone copy --files-from-raw new_files /path/to/local remote:path rclone lsf --absolute --files-only --max-age 1d /path/to/local > new_files
rclone copy --files-from-raw new_files /path/to/local remote:path
```
The default time format is `'2006-01-02 15:04:05'`. The default time format is `'2006-01-02 15:04:05'`.
[Other formats](https://pkg.go.dev/time#pkg-constants) can be specified with the `--time-format` flag. [Other formats](https://pkg.go.dev/time#pkg-constants) can be specified with
Examples: the `--time-format` flag. Examples:
rclone lsf remote:path --format pt --time-format 'Jan 2, 2006 at 3:04pm (MST)' ```sh
rclone lsf remote:path --format pt --time-format '2006-01-02 15:04:05.000000000' rclone lsf remote:path --format pt --time-format 'Jan 2, 2006 at 3:04pm (MST)'
rclone lsf remote:path --format pt --time-format '2006-01-02T15:04:05.999999999Z07:00' rclone lsf remote:path --format pt --time-format '2006-01-02 15:04:05.000000000'
rclone lsf remote:path --format pt --time-format RFC3339 rclone lsf remote:path --format pt --time-format '2006-01-02T15:04:05.999999999Z07:00'
rclone lsf remote:path --format pt --time-format DateOnly rclone lsf remote:path --format pt --time-format RFC3339
rclone lsf remote:path --format pt --time-format max rclone lsf remote:path --format pt --time-format DateOnly
`--time-format max` will automatically truncate '`2006-01-02 15:04:05.000000000`' rclone lsf remote:path --format pt --time-format max
```
`--time-format max` will automatically truncate `2006-01-02 15:04:05.000000000`
to the maximum precision supported by the remote. to the maximum precision supported by the remote.
Any of the filtering options can be applied to this command. Any of the filtering options can be applied to this command.
There are several related list commands There are several related list commands
* `ls` to list size and path of objects only - `ls` to list size and path of objects only
* `lsl` to list modification time, size and path of objects only - `lsl` to list modification time, size and path of objects only
* `lsd` to list directories only - `lsd` to list directories only
* `lsf` to list objects and directories in easy to parse format - `lsf` to list objects and directories in easy to parse format
* `lsjson` to list objects and directories in JSON format - `lsjson` to list objects and directories in JSON format
`ls`,`lsl`,`lsd` are designed to be human-readable. `ls`,`lsl`,`lsd` are designed to be human-readable.
`lsf` is designed to be human and machine-readable. `lsf` is designed to be human and machine-readable.
@@ -135,13 +153,13 @@ There are several related list commands
Note that `ls` and `lsl` recurse by default - use `--max-depth 1` to stop the recursion. 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. The other list commands `lsd`,`lsf`,`lsjson` do not recurse by default -
use `-R` to make them recurse.
Listing a nonexistent directory will produce an error except for Listing a nonexistent directory will produce an error except for
remotes which can't have empty directories (e.g. s3, swift, or gcs - remotes which can't have empty directories (e.g. s3, swift, or gcs -
the bucket-based remotes). the bucket-based remotes).
``` ```
rclone lsf remote:path [flags] rclone lsf remote:path [flags]
``` ```
@@ -169,7 +187,7 @@ See the [global flags page](/flags/) for global options not listed here.
Flags for filtering directory listings Flags for filtering directory listings
``` ```text
--delete-excluded Delete files on dest excluded from sync --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern --exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin) --exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
@@ -199,12 +217,17 @@ Flags for filtering directory listings
Flags for listing directories Flags for listing directories
``` ```text
--default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z) --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
--fast-list Use recursive list if available; uses more memory but fewer transactions --fast-list Use recursive list if available; uses more memory but fewer transactions
``` ```
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends. * [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends.
<!-- markdownlint-restore -->

View File

@@ -14,25 +14,27 @@ List directories and objects in the path in JSON format.
The output is an array of Items, where each Item looks like this: The output is an array of Items, where each Item looks like this:
{ ```json
"Hashes" : { {
"SHA-1" : "f572d396fae9206628714fb2ce00f72e94f2258f", "Hashes" : {
"MD5" : "b1946ac92492d2347c6235b4d2611184", "SHA-1" : "f572d396fae9206628714fb2ce00f72e94f2258f",
"DropboxHash" : "ecb65bb98f9d905b70458986c39fcbad7715e5f2fcc3b1f07767d7c83e2438cc" "MD5" : "b1946ac92492d2347c6235b4d2611184",
}, "DropboxHash" : "ecb65bb98f9d905b70458986c39fcbad7715e5f2fcc3b1f07767d7c83e2438cc"
"ID": "y2djkhiujf83u33", },
"OrigID": "UYOJVTUW00Q1RzTDA", "ID": "y2djkhiujf83u33",
"IsBucket" : false, "OrigID": "UYOJVTUW00Q1RzTDA",
"IsDir" : false, "IsBucket" : false,
"MimeType" : "application/octet-stream", "IsDir" : false,
"ModTime" : "2017-05-31T16:15:57.034468261+01:00", "MimeType" : "application/octet-stream",
"Name" : "file.txt", "ModTime" : "2017-05-31T16:15:57.034468261+01:00",
"Encrypted" : "v0qpsdq8anpci8n929v3uu9338", "Name" : "file.txt",
"EncryptedPath" : "kja9098349023498/v0qpsdq8anpci8n929v3uu9338", "Encrypted" : "v0qpsdq8anpci8n929v3uu9338",
"Path" : "full/path/goes/here/file.txt", "EncryptedPath" : "kja9098349023498/v0qpsdq8anpci8n929v3uu9338",
"Size" : 6, "Path" : "full/path/goes/here/file.txt",
"Tier" : "hot", "Size" : 6,
} "Tier" : "hot",
}
```
The exact set of properties included depends on the backend: The exact set of properties included depends on the backend:
@@ -94,11 +96,11 @@ Any of the filtering options can be applied to this command.
There are several related list commands There are several related list commands
* `ls` to list size and path of objects only - `ls` to list size and path of objects only
* `lsl` to list modification time, size and path of objects only - `lsl` to list modification time, size and path of objects only
* `lsd` to list directories only - `lsd` to list directories only
* `lsf` to list objects and directories in easy to parse format - `lsf` to list objects and directories in easy to parse format
* `lsjson` to list objects and directories in JSON format - `lsjson` to list objects and directories in JSON format
`ls`,`lsl`,`lsd` are designed to be human-readable. `ls`,`lsl`,`lsd` are designed to be human-readable.
`lsf` is designed to be human and machine-readable. `lsf` is designed to be human and machine-readable.
@@ -106,13 +108,13 @@ There are several related list commands
Note that `ls` and `lsl` recurse by default - use `--max-depth 1` to stop the recursion. 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. The other list commands `lsd`,`lsf`,`lsjson` do not recurse by default -
use `-R` to make them recurse.
Listing a nonexistent directory will produce an error except for Listing a nonexistent directory will produce an error except for
remotes which can't have empty directories (e.g. s3, swift, or gcs - remotes which can't have empty directories (e.g. s3, swift, or gcs -
the bucket-based remotes). the bucket-based remotes).
``` ```
rclone lsjson remote:path [flags] rclone lsjson remote:path [flags]
``` ```
@@ -141,7 +143,7 @@ See the [global flags page](/flags/) for global options not listed here.
Flags for filtering directory listings Flags for filtering directory listings
``` ```text
--delete-excluded Delete files on dest excluded from sync --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern --exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin) --exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
@@ -171,12 +173,17 @@ Flags for filtering directory listings
Flags for listing directories Flags for listing directories
``` ```text
--default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z) --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
--fast-list Use recursive list if available; uses more memory but fewer transactions --fast-list Use recursive list if available; uses more memory but fewer transactions
``` ```
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends. * [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends.
<!-- markdownlint-restore -->

View File

@@ -13,24 +13,25 @@ List the objects in path with modification time, size and path.
Lists the objects in the source path to standard output in a human Lists the objects in the source path to standard output in a human
readable format with modification time, size and path. Recurses by default. readable format with modification time, size and path. Recurses by default.
Eg E.g.
$ rclone lsl swift:bucket
60295 2016-06-25 18:55:41.062626927 bevajer5jef
90613 2016-06-25 18:55:43.302607074 canole
94467 2016-06-25 18:55:43.046609333 diwogej7
37600 2016-06-25 18:55:40.814629136 fubuwic
```sh
$ rclone lsl swift:bucket
60295 2016-06-25 18:55:41.062626927 bevajer5jef
90613 2016-06-25 18:55:43.302607074 canole
94467 2016-06-25 18:55:43.046609333 diwogej7
37600 2016-06-25 18:55:40.814629136 fubuwic
```
Any of the filtering options can be applied to this command. Any of the filtering options can be applied to this command.
There are several related list commands There are several related list commands
* `ls` to list size and path of objects only - `ls` to list size and path of objects only
* `lsl` to list modification time, size and path of objects only - `lsl` to list modification time, size and path of objects only
* `lsd` to list directories only - `lsd` to list directories only
* `lsf` to list objects and directories in easy to parse format - `lsf` to list objects and directories in easy to parse format
* `lsjson` to list objects and directories in JSON format - `lsjson` to list objects and directories in JSON format
`ls`,`lsl`,`lsd` are designed to be human-readable. `ls`,`lsl`,`lsd` are designed to be human-readable.
`lsf` is designed to be human and machine-readable. `lsf` is designed to be human and machine-readable.
@@ -38,13 +39,13 @@ There are several related list commands
Note that `ls` and `lsl` recurse by default - use `--max-depth 1` to stop the recursion. 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. The other list commands `lsd`,`lsf`,`lsjson` do not recurse by default -
use `-R` to make them recurse.
Listing a nonexistent directory will produce an error except for Listing a nonexistent directory will produce an error except for
remotes which can't have empty directories (e.g. s3, swift, or gcs - remotes which can't have empty directories (e.g. s3, swift, or gcs -
the bucket-based remotes). the bucket-based remotes).
``` ```
rclone lsl remote:path [flags] rclone lsl remote:path [flags]
``` ```
@@ -62,7 +63,7 @@ See the [global flags page](/flags/) for global options not listed here.
Flags for filtering directory listings Flags for filtering directory listings
``` ```text
--delete-excluded Delete files on dest excluded from sync --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern --exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin) --exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
@@ -92,12 +93,17 @@ Flags for filtering directory listings
Flags for listing directories Flags for listing directories
``` ```text
--default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z) --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
--fast-list Use recursive list if available; uses more memory but fewer transactions --fast-list Use recursive list if available; uses more memory but fewer transactions
``` ```
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends. * [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends.
<!-- markdownlint-restore -->

View File

@@ -27,7 +27,6 @@ by not passing a remote:path, or by passing a hyphen as remote:path
when there is data to read (if not, the hyphen will be treated literally, when there is data to read (if not, the hyphen will be treated literally,
as a relative path). as a relative path).
``` ```
rclone md5sum remote:path [flags] rclone md5sum remote:path [flags]
``` ```
@@ -49,7 +48,7 @@ See the [global flags page](/flags/) for global options not listed here.
Flags for filtering directory listings Flags for filtering directory listings
``` ```text
--delete-excluded Delete files on dest excluded from sync --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern --exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin) --exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
@@ -79,12 +78,17 @@ Flags for filtering directory listings
Flags for listing directories Flags for listing directories
``` ```text
--default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z) --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
--fast-list Use recursive list if available; uses more memory but fewer transactions --fast-list Use recursive list if available; uses more memory but fewer transactions
``` ```
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends. * [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends.
<!-- markdownlint-restore -->

View File

@@ -24,7 +24,7 @@ See the [global flags page](/flags/) for global options not listed here.
Important flags useful for most commands Important flags useful for most commands
``` ```text
-n, --dry-run Do a trial run with no permanent changes -n, --dry-run Do a trial run with no permanent changes
-i, --interactive Enable interactive mode -i, --interactive Enable interactive mode
-v, --verbose count Print lots more stuff (repeat for more) -v, --verbose count Print lots more stuff (repeat for more)
@@ -32,5 +32,10 @@ Important flags useful for most commands
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends. * [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends.
<!-- markdownlint-restore -->

View File

@@ -13,7 +13,7 @@ Mount the remote as file system on a mountpoint.
Rclone mount allows Linux, FreeBSD, macOS and Windows to Rclone mount allows Linux, FreeBSD, macOS and Windows to
mount any of Rclone's cloud storage systems as a file system with FUSE. 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. 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 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 daemon) mode. Mount runs in foreground mode by default. Use the `--daemon` flag
@@ -28,7 +28,9 @@ mount, waits until success or timeout and exits with appropriate code
On Linux/macOS/FreeBSD start the mount like this, where `/path/to/local/mount` On Linux/macOS/FreeBSD start the mount like this, where `/path/to/local/mount`
is an **empty** **existing** directory: is an **empty** **existing** directory:
rclone mount remote:path/to/files /path/to/local/mount ```sh
rclone mount remote:path/to/files /path/to/local/mount
```
On Windows you can start a mount in different ways. See [below](#mounting-modes-on-windows) On Windows you can start a mount in different ways. See [below](#mounting-modes-on-windows)
for details. If foreground mount is used interactively from a console window, for details. If foreground mount is used interactively from a console window,
@@ -38,26 +40,30 @@ 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, The following examples will mount to an automatically assigned drive,
to specific drive letter `X:`, to path `C:\path\parent\mount` to specific drive letter `X:`, to path `C:\path\parent\mount`
(where parent directory or drive must exist, and mount must **not** exist, (where parent directory or drive must exist, and mount must **not** exist,
and is not supported when [mounting as a network drive](#mounting-modes-on-windows)), and and is not supported when [mounting as a network drive](#mounting-modes-on-windows)),
the last example will mount as network share `\\cloud\remote` and map it to an and the last example will mount as network share `\\cloud\remote` and map it to an
automatically assigned drive: automatically assigned drive:
rclone mount remote:path/to/files * ```sh
rclone mount remote:path/to/files X: rclone mount remote:path/to/files *
rclone mount remote:path/to/files C:\path\parent\mount rclone mount remote:path/to/files X:
rclone mount remote:path/to/files \\cloud\remote 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 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. 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: When running in background mode the user will have to stop the mount manually:
# Linux ```sh
fusermount -u /path/to/local/mount # Linux
#... or on some systems fusermount -u /path/to/local/mount
fusermount3 -u /path/to/local/mount #... or on some systems
# OS X or Linux when using nfsmount fusermount3 -u /path/to/local/mount
umount /path/to/local/mount # OS X or Linux when using nfsmount
umount /path/to/local/mount
```
The umount operation can fail, for example when the mountpoint is busy. 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. When that happens, it is the user's responsibility to stop the mount manually.
@@ -92,20 +98,22 @@ 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. 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 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 as a network share. If you mount an rclone remote using the default, fixed drive
and experience unexpected program errors, freezes or other issues, consider mounting mode and experience unexpected program errors, freezes or other issues, consider
as a network drive instead. mounting as a network drive instead.
When mounting as a fixed disk drive you can either mount to an unused drive letter, When mounting as a fixed disk drive you can either mount to an unused drive letter,
or to a path representing a **nonexistent** subdirectory of an **existing** parent or to a path representing a **nonexistent** subdirectory of an **existing** parent
directory or drive. Using the special value `*` will tell rclone to directory or drive. Using the special value `*` will tell rclone to
automatically assign the next available drive letter, starting with Z: and moving backward. automatically assign the next available drive letter, starting with Z: and moving
Examples: backward. Examples:
rclone mount remote:path/to/files * ```sh
rclone mount remote:path/to/files X: rclone mount remote:path/to/files *
rclone mount remote:path/to/files C:\path\parent\mount rclone mount remote:path/to/files X:
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 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. file system. The default is to use the remote name and path.
@@ -115,24 +123,28 @@ 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 this mode, it is a limitation Windows imposes on junctions, so the remote must always
be mounted to a drive letter. be mounted to a drive letter.
rclone mount remote:path/to/files X: --network-mode ```sh
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 volume name specified with `--volname` will be used to create the network share
A complete UNC path, such as `\\cloud\remote`, optionally with path path. A complete UNC path, such as `\\cloud\remote`, optionally with path
`\\cloud\remote\madeup\path`, will be used as is. Any other `\\cloud\remote\madeup\path`, will be used as is. Any other
string will be used as the share part, after a default prefix `\\server\`. 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. 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, You must make sure the volume name is unique when you are mounting more than one
or else the mount command will fail. The share name will treated as the volume label for drive, or else the mount command will fail. The share name will treated as the
the mapped drive, shown in Windows Explorer etc, while the complete 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 `\\server\share` will be reported as the remote UNC path by
`net use` etc, just like a normal network drive mapping. `net use` etc, just like a normal network drive mapping.
If you specify a full network share UNC path with `--volname`, this will implicitly If you specify a full network share UNC path with `--volname`, this will implicitly
set the `--network-mode` option, so the following two examples have same result: set the `--network-mode` option, so the following two examples have same result:
rclone mount remote:path/to/files X: --network-mode ```sh
rclone mount remote:path/to/files X: --volname \\server\share rclone mount remote:path/to/files X: --network-mode
rclone mount remote:path/to/files X: --volname \\server\share
```
You may also specify the network share UNC path as the mountpoint itself. Then rclone 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 will automatically assign a drive letter, same as with `*` and use that as
@@ -140,15 +152,16 @@ mountpoint, and instead use the UNC path specified as the volume name, as if it
specified with the `--volname` option. This will also implicitly set specified with the `--volname` option. This will also implicitly set
the `--network-mode` option. This means the following two examples have same result: the `--network-mode` option. This means the following two examples have same result:
rclone mount remote:path/to/files \\cloud\remote ```sh
rclone mount remote:path/to/files * --volname \\cloud\remote rclone mount remote:path/to/files \\cloud\remote
rclone mount remote:path/to/files * --volname \\cloud\remote
```
There is yet another way to enable network mode, and to set the share path, 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: and that is to pass the "native" libfuse/WinFsp option directly:
`--fuse-flag --VolumePrefix=\server\share`. Note that the path `--fuse-flag --VolumePrefix=\server\share`. Note that the path
must be with just a single backslash prefix in this case. must be with just a single backslash prefix in this case.
*Note:* In previous versions of rclone this was the only supported method. *Note:* In previous versions of rclone this was the only supported method.
[Read more about drive mapping](https://en.wikipedia.org/wiki/Drive_mapping) [Read more about drive mapping](https://en.wikipedia.org/wiki/Drive_mapping)
@@ -161,11 +174,11 @@ The FUSE emulation layer on Windows must convert between the POSIX-based
permission model used in FUSE, and the permission model used in Windows, permission model used in FUSE, and the permission model used in Windows,
based on access-control lists (ACL). based on access-control lists (ACL).
The mounted filesystem will normally get three entries in its access-control list (ACL), The mounted filesystem will normally get three entries in its access-control list
representing permissions for the POSIX permission scopes: Owner, group and others. (ACL), representing permissions for the POSIX permission scopes: Owner, group and
By default, the owner and group will be taken from the current user, and the built-in others. By default, the owner and group will be taken from the current user, and
group "Everyone" will be used to represent others. The user/group can be customized the built-in group "Everyone" will be used to represent others. The user/group can
with FUSE options "UserName" and "GroupName", be customized with FUSE options "UserName" and "GroupName",
e.g. `-o UserName=user123 -o GroupName="Authenticated Users"`. e.g. `-o UserName=user123 -o GroupName="Authenticated Users"`.
The permissions on each entry will be set according to [options](#options) The permissions on each entry will be set according to [options](#options)
`--dir-perms` and `--file-perms`, which takes a value in traditional Unix `--dir-perms` and `--file-perms`, which takes a value in traditional Unix
@@ -265,58 +278,63 @@ does not suffer from the same limitations.
## Mounting on macOS ## Mounting on macOS
Mounting on macOS can be done either via [built-in NFS server](/commands/rclone_serve_nfs/), [macFUSE](https://osxfuse.github.io/) Mounting on macOS can be done either via [built-in NFS server](/commands/rclone_serve_nfs/),
(also known as osxfuse) or [FUSE-T](https://www.fuse-t.org/). macFUSE is a traditional [macFUSE](https://osxfuse.github.io/) (also known as osxfuse) or
FUSE driver utilizing a macOS kernel extension (kext). FUSE-T is an alternative FUSE system [FUSE-T](https://www.fuse-t.org/).macFUSE is a traditional FUSE driver utilizing
which "mounts" via an NFSv4 local server. a macOS kernel extension (kext). FUSE-T is an alternative FUSE system which
"mounts" via an NFSv4 local server.
#### Unicode Normalization ### Unicode Normalization
It is highly recommended to keep the default of `--no-unicode-normalization=false` It is highly recommended to keep the default of `--no-unicode-normalization=false`
for all `mount` and `serve` commands on macOS. For details, see [vfs-case-sensitivity](https://rclone.org/commands/rclone_mount/#vfs-case-sensitivity). for all `mount` and `serve` commands on macOS. For details, see [vfs-case-sensitivity](https://rclone.org/commands/rclone_mount/#vfs-case-sensitivity).
### NFS mount ### NFS mount
This method spins up an NFS server using [serve nfs](/commands/rclone_serve_nfs/) command and mounts This method spins up an NFS server using [serve nfs](/commands/rclone_serve_nfs/)
it to the specified mountpoint. If you run this in background mode using |--daemon|, you will need to command and mounts it to the specified mountpoint. If you run this in background
send SIGTERM signal to the rclone process using |kill| command to stop the mount. mode using |--daemon|, you will need to send SIGTERM signal to the rclone process
using |kill| command to stop the mount.
Note that `--nfs-cache-handle-limit` controls the maximum number of cached file handles stored by the `nfsmount` caching handler. Note that `--nfs-cache-handle-limit` controls the maximum number of cached file
This should not be set too low or you may experience errors when trying to access files. The default is 1000000, handles stored by the `nfsmount` caching handler. This should not be set too low
or you may experience errors when trying to access files. The default is 1000000,
but consider lowering this limit if the server's system resource usage causes problems. but consider lowering this limit if the server's system resource usage causes problems.
### macFUSE Notes ### macFUSE Notes
If installing macFUSE using [dmg packages](https://github.com/osxfuse/osxfuse/releases) from If installing macFUSE using [dmg packages](https://github.com/osxfuse/osxfuse/releases)
the website, rclone will locate the macFUSE libraries without any further intervention. from the website, rclone will locate the macFUSE libraries without any further intervention.
If however, macFUSE is installed using the [macports](https://www.macports.org/) package manager, If however, macFUSE is installed using the [macports](https://www.macports.org/)
the following addition steps are required. package manager, the following addition steps are required.
sudo mkdir /usr/local/lib ```sh
cd /usr/local/lib sudo mkdir /usr/local/lib
sudo ln -s /opt/local/lib/libfuse.2.dylib cd /usr/local/lib
sudo ln -s /opt/local/lib/libfuse.2.dylib
```
### FUSE-T Limitations, Caveats, and Notes ### FUSE-T Limitations, Caveats, and Notes
There are some limitations, caveats, and notes about how it works. These are current as There are some limitations, caveats, and notes about how it works. These are
of FUSE-T version 1.0.14. current as of FUSE-T version 1.0.14.
#### ModTime update on read #### ModTime update on read
As per the [FUSE-T wiki](https://github.com/macos-fuse-t/fuse-t/wiki#caveats): As per the [FUSE-T wiki](https://github.com/macos-fuse-t/fuse-t/wiki#caveats):
> File access and modification times cannot be set separately as it seems to be an > File access and modification times cannot be set separately as it seems to be an
> issue with the NFS client which always modifies both. Can be reproduced with > issue with the NFS client which always modifies both. Can be reproduced with
> 'touch -m' and 'touch -a' commands > 'touch -m' and 'touch -a' commands
This means that viewing files with various tools, notably macOS Finder, will cause rlcone This means that viewing files with various tools, notably macOS Finder, will cause
to update the modification time of the file. This may make rclone upload a full new copy rlcone to update the modification time of the file. This may make rclone upload a
of the file. full new copy of the file.
#### Read Only mounts #### Read Only mounts
When mounting with `--read-only`, attempts to write to files will fail *silently* as When mounting with `--read-only`, attempts to write to files will fail *silently*
opposed to with a clear warning as in macFUSE. as opposed to with a clear warning as in macFUSE.
## Limitations ## Limitations
@@ -417,12 +435,14 @@ helper you should symlink rclone binary to `/sbin/mount.rclone` and optionally
rclone will detect it and translate command-line arguments appropriately. rclone will detect it and translate command-line arguments appropriately.
Now you can run classic mounts like this: Now you can run classic mounts like this:
```
```sh
mount sftp1:subdir /mnt/data -t rclone -o vfs_cache_mode=writes,sftp_key_file=/path/to/pem mount sftp1:subdir /mnt/data -t rclone -o vfs_cache_mode=writes,sftp_key_file=/path/to/pem
``` ```
or create systemd mount units: or create systemd mount units:
```
```ini
# /etc/systemd/system/mnt-data.mount # /etc/systemd/system/mnt-data.mount
[Unit] [Unit]
Description=Mount for /mnt/data Description=Mount for /mnt/data
@@ -434,7 +454,8 @@ Options=rw,_netdev,allow_other,args2env,vfs-cache-mode=writes,config=/etc/rclone
``` ```
optionally accompanied by systemd automount unit optionally accompanied by systemd automount unit
```
```ini
# /etc/systemd/system/mnt-data.automount # /etc/systemd/system/mnt-data.automount
[Unit] [Unit]
Description=AutoMount for /mnt/data Description=AutoMount for /mnt/data
@@ -446,7 +467,8 @@ WantedBy=multi-user.target
``` ```
or add in `/etc/fstab` a line like or add in `/etc/fstab` a line like
```
```sh
sftp1:subdir /mnt/data rclone rw,noauto,nofail,_netdev,x-systemd.automount,args2env,vfs_cache_mode=writes,config=/etc/rclone.conf,cache_dir=/var/cache/rclone 0 0 sftp1:subdir /mnt/data rclone rw,noauto,nofail,_netdev,x-systemd.automount,args2env,vfs_cache_mode=writes,config=/etc/rclone.conf,cache_dir=/var/cache/rclone 0 0
``` ```
@@ -495,8 +517,10 @@ directory should be considered up to date and not refreshed from the
backend. Changes made through the VFS will appear immediately or backend. Changes made through the VFS will appear immediately or
invalidate the cache. invalidate the cache.
```text
--dir-cache-time duration Time to cache directory entries for (default 5m0s) --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) --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 However, changes made directly on the cloud storage by the web
interface or a different copy of rclone will only be picked up once interface or a different copy of rclone will only be picked up once
@@ -508,16 +532,22 @@ You can send a `SIGHUP` signal to rclone for it to flush all
directory caches, regardless of how old they are. Assuming only one directory caches, regardless of how old they are. Assuming only one
rclone instance is running, you can reset the cache like this: rclone instance is running, you can reset the cache like this:
kill -SIGHUP $(pidof rclone) ```sh
kill -SIGHUP $(pidof rclone)
```
If you configure rclone with a [remote control](/rc) then you can use If you configure rclone with a [remote control](/rc) then you can use
rclone rc to flush the whole directory cache: rclone rc to flush the whole directory cache:
rclone rc vfs/forget ```sh
rclone rc vfs/forget
```
Or individual files or directories: Or individual files or directories:
rclone rc vfs/forget file=path/to/file dir=path/to/dir ```sh
rclone rc vfs/forget file=path/to/file dir=path/to/dir
```
## VFS File Buffering ## VFS File Buffering
@@ -548,6 +578,7 @@ write simultaneously to a file. See below for more details.
Note that the VFS cache is separate from the cache backend and you may Note that the VFS cache is separate from the cache backend and you may
find that you need one or the other or both. find that you need one or the other or both.
```text
--cache-dir string Directory rclone will use for caching. --cache-dir string Directory rclone will use for caching.
--vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off) --vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
--vfs-cache-max-age duration Max time since last access of objects in the cache (default 1h0m0s) --vfs-cache-max-age duration Max time since last access of objects in the cache (default 1h0m0s)
@@ -555,6 +586,7 @@ find that you need one or the other or both.
--vfs-cache-min-free-space SizeSuffix Target minimum free space on the disk containing the cache (default off) --vfs-cache-min-free-space SizeSuffix Target minimum free space on the disk containing the cache (default off)
--vfs-cache-poll-interval duration Interval to poll the cache for stale objects (default 1m0s) --vfs-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) --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 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 files are stored in the user cache file area which is OS dependent but
@@ -602,13 +634,13 @@ directly to the remote without caching anything on disk.
This will mean some operations are not possible This will mean some operations are not possible
* Files can't be opened for both read AND write - Files can't be opened for both read AND write
* Files opened for write can't be seeked - Files opened for write can't be seeked
* Existing files opened for write must have O_TRUNC set - 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 read with O_TRUNC will be opened write only
* Files open for write only will behave as if O_TRUNC was supplied - Files open for write only will behave as if O_TRUNC was supplied
* Open modes O_APPEND, O_TRUNC are ignored - Open modes O_APPEND, O_TRUNC are ignored
* If an upload fails it can't be retried - If an upload fails it can't be retried
### --vfs-cache-mode minimal ### --vfs-cache-mode minimal
@@ -618,10 +650,10 @@ write will be a lot more compatible, but uses the minimal disk space.
These operations are not possible These operations are not possible
* Files opened for write only can't be seeked - Files opened for write only can't be seeked
* Existing files opened for write must have O_TRUNC set - Existing files opened for write must have O_TRUNC set
* Files opened for write only will ignore O_APPEND, O_TRUNC - Files opened for write only will ignore O_APPEND, O_TRUNC
* If an upload fails it can't be retried - If an upload fails it can't be retried
### --vfs-cache-mode writes ### --vfs-cache-mode writes
@@ -704,9 +736,11 @@ read, at the cost of an increased number of requests.
These flags control the chunking: These flags control the chunking:
```text
--vfs-read-chunk-size SizeSuffix Read the source objects in chunks (default 128M) --vfs-read-chunk-size SizeSuffix Read the source objects in chunks (default 128M)
--vfs-read-chunk-size-limit SizeSuffix Max chunk doubling size (default off) --vfs-read-chunk-size-limit SizeSuffix Max chunk doubling size (default off)
--vfs-read-chunk-streams int The number of parallel streams to read at once --vfs-read-chunk-streams int The number of parallel streams to read at once
```
The chunking behaves differently depending on the `--vfs-read-chunk-streams` parameter. The chunking behaves differently depending on the `--vfs-read-chunk-streams` parameter.
@@ -720,9 +754,9 @@ value is "off", which is the default, the limit is disabled and the chunk size
will grow indefinitely. will grow indefinitely.
With `--vfs-read-chunk-size 100M` and `--vfs-read-chunk-size-limit 0` 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. the following parts will be downloaded: 0-100M, 100M-200M, 200M-300M, 300M-400M
When `--vfs-read-chunk-size-limit 500M` is specified, the result would be and so on. When `--vfs-read-chunk-size-limit 500M` is specified, the result would
0-100M, 100M-300M, 300M-700M, 700M-1200M, 1200M-1700M and so on. 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. Setting `--vfs-read-chunk-size` to `0` or "off" disables chunked reading.
@@ -760,32 +794,41 @@ In particular S3 and Swift benefit hugely from the `--no-modtime` flag
(or use `--use-server-modtime` for a slightly different effect) as each (or use `--use-server-modtime` for a slightly different effect) as each
read of the modification time takes a transaction. read of the modification time takes a transaction.
```text
--no-checksum Don't compare checksums on up/download. --no-checksum Don't compare checksums on up/download.
--no-modtime Don't read/write the modification time (can speed things up). --no-modtime Don't read/write the modification time (can speed things up).
--no-seek Don't allow seeking in files. --no-seek Don't allow seeking in files.
--read-only Only allow read-only access. --read-only Only allow read-only access.
```
Sometimes rclone is delivered reads or writes out of order. Rather 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 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 write to come in. These flags only come into effect when not using an
on disk cache file. on disk cache file.
```text
--vfs-read-wait duration Time to wait for in-sequence read before seeking (default 20ms) --vfs-read-wait duration Time to wait for in-sequence read before seeking (default 20ms)
--vfs-write-wait duration Time to wait for in-sequence write before giving error (default 1s) --vfs-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), 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 the global flag `--transfers` can be set to adjust the number of parallel uploads
modified files from the cache (the related global flag `--checkers` has no effect on the VFS). of modified files from the cache (the related global flag `--checkers` has no
effect on the VFS).
```text
--transfers int Number of file transfers to run in parallel (default 4) --transfers int Number of file transfers to run in parallel (default 4)
```
## Symlinks ## Symlinks
By default the VFS does not support symlinks. However this may be By default the VFS does not support symlinks. However this may be
enabled with either of the following flags: enabled with either of the following flags:
```text
--links Translate symlinks to/from regular files with a '.rclonelink' extension. --links Translate symlinks to/from regular files with a '.rclonelink' extension.
--vfs-links Translate symlinks to/from regular files with a '.rclonelink' extension for the VFS --vfs-links Translate symlinks to/from regular files with a '.rclonelink' extension for the VFS
```
As most cloud storage systems do not support symlinks directly, rclone As most cloud storage systems do not support symlinks directly, rclone
stores the symlink as a normal file with a special extension. So a stores the symlink as a normal file with a special extension. So a
@@ -797,7 +840,8 @@ Note that `--links` enables symlink translation globally in rclone -
this includes any backend which supports the concept (for example the this includes any backend which supports the concept (for example the
local backend). `--vfs-links` just enables it for the VFS layer. local backend). `--vfs-links` just enables it for the VFS layer.
This scheme is compatible with that used by the [local backend with the --local-links flag](/local/#symlinks-junction-points). This scheme is compatible with that used by the
[local backend with the --local-links flag](/local/#symlinks-junction-points).
The `--vfs-links` flag has been designed for `rclone mount`, `rclone The `--vfs-links` flag has been designed for `rclone mount`, `rclone
nfsmount` and `rclone serve nfs`. nfsmount` and `rclone serve nfs`.
@@ -807,7 +851,7 @@ It hasn't been tested with the other `rclone serve` commands yet.
A limitation of the current implementation is that it expects the A limitation of the current implementation is that it expects the
caller to resolve sub-symlinks. For example given this directory tree caller to resolve sub-symlinks. For example given this directory tree
``` ```text
. .
├── dir ├── dir
│   └── file.txt │   └── file.txt
@@ -885,7 +929,9 @@ sync`.
This flag allows you to manually set the statistics about the filing system. This flag allows you to manually set the statistics about the filing system.
It can be useful when those statistics cannot be read correctly automatically. It can be useful when those statistics cannot be read correctly automatically.
```text
--vfs-disk-space-total-size Manually set the total disk space size (example: 256G, default: -1) --vfs-disk-space-total-size Manually set the total disk space size (example: 256G, default: -1)
```
## Alternate report of used bytes ## Alternate report of used bytes
@@ -896,7 +942,7 @@ With this flag set, instead of relying on the backend to report this
information, rclone will scan the whole remote similar to `rclone size` information, rclone will scan the whole remote similar to `rclone size`
and compute the total used space itself. and compute the total used space itself.
_WARNING._ Contrary to `rclone size`, this flag ignores filters so that the **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 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. calls resulting in extra charges. Use it as a last resort and only with caching.
@@ -914,7 +960,7 @@ Note that some backends won't create metadata unless you pass in the
For example, using `rclone mount` with `--metadata --vfs-metadata-extension .metadata` For example, using `rclone mount` with `--metadata --vfs-metadata-extension .metadata`
we get we get
``` ```sh
$ ls -l /mnt/ $ ls -l /mnt/
total 1048577 total 1048577
-rw-rw-r-- 1 user user 1073741824 Mar 3 16:03 1G -rw-rw-r-- 1 user user 1073741824 Mar 3 16:03 1G
@@ -939,8 +985,6 @@ If the file has no metadata it will be returned as `{}` and if there
is an error reading the metadata the error will be returned as is an error reading the metadata the error will be returned as
`{"error":"error string"}`. `{"error":"error string"}`.
``` ```
rclone mount remote:path /path/to/mountpoint [flags] rclone mount remote:path /path/to/mountpoint [flags]
``` ```
@@ -1011,7 +1055,7 @@ See the [global flags page](/flags/) for global options not listed here.
Flags for filtering directory listings Flags for filtering directory listings
``` ```text
--delete-excluded Delete files on dest excluded from sync --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern --exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin) --exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
@@ -1039,5 +1083,10 @@ Flags for filtering directory listings
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends. * [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends.
<!-- markdownlint-restore -->

View File

@@ -40,7 +40,7 @@ the backend supports it. If metadata syncing is required then use the
`--metadata` flag. `--metadata` flag.
Note that the modification time and metadata for the root directory Note that the modification time and metadata for the root directory
will **not** be synced. See https://github.com/rclone/rclone/issues/7652 will **not** be synced. See <https://github.com/rclone/rclone/issues/7652>
for more info. for more info.
**Important**: Since this can cause data loss, test first with the **Important**: Since this can cause data loss, test first with the
@@ -48,12 +48,13 @@ for more info.
**Note**: Use the `-P`/`--progress` flag to view real-time transfer statistics. **Note**: Use the `-P`/`--progress` flag to view real-time transfer statistics.
# Logger Flags ## Logger Flags
The `--differ`, `--missing-on-dst`, `--missing-on-src`, `--match` and `--error` flags write paths, The `--differ`, `--missing-on-dst`, `--missing-on-src`, `--match` and `--error`
one per line, to the file name (or stdout if it is `-`) supplied. What they write is described flags write paths, one per line, to the file name (or stdout if it is `-`)
in the help below. For example `--differ` will write all paths which are present supplied. What they write is described in the help below. For example
on both the source and destination but different. `--differ` will write all paths which are present on both the source and
destination but different.
The `--combined` flag will write a file (or stdout) which contains all 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 file paths with a symbol and then a space and then the path to tell
@@ -86,9 +87,7 @@ are not currently supported:
Note also that each file is logged during execution, as opposed to after, so it Note also that each file is logged during execution, as opposed to after, so it
is most useful as a predictor of what SHOULD happen to each file is most useful as a predictor of what SHOULD happen to each file
(which may or may not match what actually DID.) (which may or may not match what actually DID).
``` ```
rclone move source:path dest:path [flags] rclone move source:path dest:path [flags]
@@ -125,7 +124,7 @@ See the [global flags page](/flags/) for global options not listed here.
Flags for anything which can copy a file Flags for anything which can copy a file
``` ```text
--check-first Do all the checks before starting transfers --check-first Do all the checks before starting transfers
-c, --checksum Check for changes with size & checksum (if available, or fallback to size only) -c, --checksum Check for changes with size & checksum (if available, or fallback to size only)
--compare-dest stringArray Include additional server-side paths during comparison --compare-dest stringArray Include additional server-side paths during comparison
@@ -166,7 +165,7 @@ Flags for anything which can copy a file
Important flags useful for most commands Important flags useful for most commands
``` ```text
-n, --dry-run Do a trial run with no permanent changes -n, --dry-run Do a trial run with no permanent changes
-i, --interactive Enable interactive mode -i, --interactive Enable interactive mode
-v, --verbose count Print lots more stuff (repeat for more) -v, --verbose count Print lots more stuff (repeat for more)
@@ -176,7 +175,7 @@ Important flags useful for most commands
Flags for filtering directory listings Flags for filtering directory listings
``` ```text
--delete-excluded Delete files on dest excluded from sync --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern --exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin) --exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
@@ -206,12 +205,17 @@ Flags for filtering directory listings
Flags for listing directories Flags for listing directories
``` ```text
--default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z) --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
--fast-list Use recursive list if available; uses more memory but fewer transactions --fast-list Use recursive list if available; uses more memory but fewer transactions
``` ```
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends. * [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends.
<!-- markdownlint-restore -->

View File

@@ -19,18 +19,22 @@ like the [move](/commands/rclone_move/) command.
So So
rclone moveto src dst ```sh
rclone moveto src dst
```
where src and dst are rclone paths, either remote:path or where src and dst are rclone paths, either remote:path or
/path/to/local or C:\windows\path\if\on\windows. /path/to/local or C:\windows\path\if\on\windows.
This will: This will:
if src is file ```text
move it to dst, overwriting an existing file if it exists if src is file
if src is directory move it to dst, overwriting an existing file if it exists
move it to dst, overwriting existing files if they exist if src is directory
see move command for full details 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 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 by size and modification time or MD5SUM. src will be deleted on
@@ -41,12 +45,13 @@ successful transfer.
**Note**: Use the `-P`/`--progress` flag to view real-time transfer statistics. **Note**: Use the `-P`/`--progress` flag to view real-time transfer statistics.
# Logger Flags ## Logger Flags
The `--differ`, `--missing-on-dst`, `--missing-on-src`, `--match` and `--error` flags write paths, The `--differ`, `--missing-on-dst`, `--missing-on-src`, `--match` and `--error`
one per line, to the file name (or stdout if it is `-`) supplied. What they write is described flags write paths, one per line, to the file name (or stdout if it is `-`)
in the help below. For example `--differ` will write all paths which are present supplied. What they write is described in the help below. For example
on both the source and destination but different. `--differ` will write all paths which are present on both the source and
destination but different.
The `--combined` flag will write a file (or stdout) which contains all 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 file paths with a symbol and then a space and then the path to tell
@@ -79,9 +84,7 @@ are not currently supported:
Note also that each file is logged during execution, as opposed to after, so it Note also that each file is logged during execution, as opposed to after, so it
is most useful as a predictor of what SHOULD happen to each file is most useful as a predictor of what SHOULD happen to each file
(which may or may not match what actually DID.) (which may or may not match what actually DID).
``` ```
rclone moveto source:path dest:path [flags] rclone moveto source:path dest:path [flags]
@@ -116,7 +119,7 @@ See the [global flags page](/flags/) for global options not listed here.
Flags for anything which can copy a file Flags for anything which can copy a file
``` ```text
--check-first Do all the checks before starting transfers --check-first Do all the checks before starting transfers
-c, --checksum Check for changes with size & checksum (if available, or fallback to size only) -c, --checksum Check for changes with size & checksum (if available, or fallback to size only)
--compare-dest stringArray Include additional server-side paths during comparison --compare-dest stringArray Include additional server-side paths during comparison
@@ -157,7 +160,7 @@ Flags for anything which can copy a file
Important flags useful for most commands Important flags useful for most commands
``` ```text
-n, --dry-run Do a trial run with no permanent changes -n, --dry-run Do a trial run with no permanent changes
-i, --interactive Enable interactive mode -i, --interactive Enable interactive mode
-v, --verbose count Print lots more stuff (repeat for more) -v, --verbose count Print lots more stuff (repeat for more)
@@ -167,7 +170,7 @@ Important flags useful for most commands
Flags for filtering directory listings Flags for filtering directory listings
``` ```text
--delete-excluded Delete files on dest excluded from sync --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern --exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin) --exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
@@ -197,12 +200,17 @@ Flags for filtering directory listings
Flags for listing directories Flags for listing directories
``` ```text
--default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z) --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
--fast-list Use recursive list if available; uses more memory but fewer transactions --fast-list Use recursive list if available; uses more memory but fewer transactions
``` ```
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends. * [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends.
<!-- markdownlint-restore -->

View File

@@ -24,41 +24,45 @@ structure as it goes along.
You can interact with the user interface using key presses, You can interact with the user interface using key presses,
press '?' to toggle the help on and off. The supported keys are: press '?' to toggle the help on and off. The supported keys are:
↑,↓ or k,j to Move ```text
→,l to enter ↑,↓ or k,j to Move
←,h to return →,l to enter
g toggle graph ←,h to return
c toggle counts g toggle graph
a toggle average size in directory c toggle counts
m toggle modified time a toggle average size in directory
u toggle human-readable format m toggle modified time
n,s,C,A,M sort by name,size,count,asize,mtime u toggle human-readable format
d delete file/directory n,s,C,A,M sort by name,size,count,asize,mtime
v select file/directory d delete file/directory
V enter visual select mode v select file/directory
D delete selected files/directories V enter visual select mode
y copy current path to clipboard D delete selected files/directories
Y display current path y copy current path to clipboard
^L refresh screen (fix screen corruption) Y display current path
r recalculate file sizes ^L refresh screen (fix screen corruption)
? to toggle help on and off r recalculate file sizes
ESC to close the menu box ? to toggle help on and off
q/^c to quit ESC to close the menu box
q/^c to quit
```
Listed files/directories may be prefixed by a one-character flag, Listed files/directories may be prefixed by a one-character flag,
some of them combined with a description in brackets at end of line. some of them combined with a description in brackets at end of line.
These flags have the following meaning: These flags have the following meaning:
e means this is an empty directory, i.e. contains no files (but ```text
may contain empty subdirectories) e means this is an empty directory, i.e. contains no files (but
~ means this is a directory where some of the files (possibly in may contain empty subdirectories)
subdirectories) have unknown size, and therefore the directory ~ means this is a directory where some of the files (possibly in
size may be underestimated (and average size inaccurate, as it subdirectories) have unknown size, and therefore the directory
is average of the files with known sizes). size may be underestimated (and average size inaccurate, as it
. means an error occurred while reading a subdirectory, and is average of the files with known sizes).
therefore the directory size may be underestimated (and average . means an error occurred while reading a subdirectory, and
size inaccurate) therefore the directory size may be underestimated (and average
! means an error occurred while reading this directory size inaccurate)
! means an error occurred while reading this directory
```
This an homage to the [ncdu tool](https://dev.yorhel.nl/ncdu) but for This an homage to the [ncdu tool](https://dev.yorhel.nl/ncdu) but for
rclone remotes. It is missing lots of features at the moment rclone remotes. It is missing lots of features at the moment
@@ -71,7 +75,6 @@ For a non-interactive listing of the remote, see the
[tree](/commands/rclone_tree/) command. To just get the total size of [tree](/commands/rclone_tree/) command. To just get the total size of
the remote you can also use the [size](/commands/rclone_size/) command. the remote you can also use the [size](/commands/rclone_size/) command.
``` ```
rclone ncdu remote:path [flags] rclone ncdu remote:path [flags]
``` ```
@@ -89,7 +92,7 @@ See the [global flags page](/flags/) for global options not listed here.
Flags for filtering directory listings Flags for filtering directory listings
``` ```text
--delete-excluded Delete files on dest excluded from sync --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern --exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin) --exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
@@ -119,12 +122,17 @@ Flags for filtering directory listings
Flags for listing directories Flags for listing directories
``` ```text
--default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z) --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
--fast-list Use recursive list if available; uses more memory but fewer transactions --fast-list Use recursive list if available; uses more memory but fewer transactions
``` ```
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends. * [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends.
<!-- markdownlint-restore -->

View File

@@ -14,7 +14,7 @@ Mount the remote as file system on a mountpoint.
Rclone nfsmount allows Linux, FreeBSD, macOS and Windows to Rclone nfsmount allows Linux, FreeBSD, macOS and Windows to
mount any of Rclone's cloud storage systems as a file system with FUSE. 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. 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 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 daemon) mode. Mount runs in foreground mode by default. Use the `--daemon` flag
@@ -29,7 +29,9 @@ mount, waits until success or timeout and exits with appropriate code
On Linux/macOS/FreeBSD start the mount like this, where `/path/to/local/mount` On Linux/macOS/FreeBSD start the mount like this, where `/path/to/local/mount`
is an **empty** **existing** directory: is an **empty** **existing** directory:
rclone nfsmount remote:path/to/files /path/to/local/mount ```sh
rclone nfsmount remote:path/to/files /path/to/local/mount
```
On Windows you can start a mount in different ways. See [below](#mounting-modes-on-windows) On Windows you can start a mount in different ways. See [below](#mounting-modes-on-windows)
for details. If foreground mount is used interactively from a console window, for details. If foreground mount is used interactively from a console window,
@@ -39,26 +41,30 @@ 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, The following examples will mount to an automatically assigned drive,
to specific drive letter `X:`, to path `C:\path\parent\mount` to specific drive letter `X:`, to path `C:\path\parent\mount`
(where parent directory or drive must exist, and mount must **not** exist, (where parent directory or drive must exist, and mount must **not** exist,
and is not supported when [mounting as a network drive](#mounting-modes-on-windows)), and and is not supported when [mounting as a network drive](#mounting-modes-on-windows)),
the last example will mount as network share `\\cloud\remote` and map it to an and the last example will mount as network share `\\cloud\remote` and map it to an
automatically assigned drive: automatically assigned drive:
rclone nfsmount remote:path/to/files * ```sh
rclone nfsmount remote:path/to/files X: rclone nfsmount remote:path/to/files *
rclone nfsmount remote:path/to/files C:\path\parent\mount rclone nfsmount remote:path/to/files X:
rclone nfsmount remote:path/to/files \\cloud\remote rclone nfsmount remote:path/to/files C:\path\parent\mount
rclone nfsmount remote:path/to/files \\cloud\remote
```
When the program ends while in foreground mode, either via Ctrl+C or receiving 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. 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: When running in background mode the user will have to stop the mount manually:
# Linux ```sh
fusermount -u /path/to/local/mount # Linux
#... or on some systems fusermount -u /path/to/local/mount
fusermount3 -u /path/to/local/mount #... or on some systems
# OS X or Linux when using nfsmount fusermount3 -u /path/to/local/mount
umount /path/to/local/mount # OS X or Linux when using nfsmount
umount /path/to/local/mount
```
The umount operation can fail, for example when the mountpoint is busy. 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. When that happens, it is the user's responsibility to stop the mount manually.
@@ -93,20 +99,22 @@ 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. 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 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 as a network share. If you mount an rclone remote using the default, fixed drive
and experience unexpected program errors, freezes or other issues, consider mounting mode and experience unexpected program errors, freezes or other issues, consider
as a network drive instead. mounting as a network drive instead.
When mounting as a fixed disk drive you can either mount to an unused drive letter, When mounting as a fixed disk drive you can either mount to an unused drive letter,
or to a path representing a **nonexistent** subdirectory of an **existing** parent or to a path representing a **nonexistent** subdirectory of an **existing** parent
directory or drive. Using the special value `*` will tell rclone to directory or drive. Using the special value `*` will tell rclone to
automatically assign the next available drive letter, starting with Z: and moving backward. automatically assign the next available drive letter, starting with Z: and moving
Examples: backward. Examples:
rclone nfsmount remote:path/to/files * ```sh
rclone nfsmount remote:path/to/files X: rclone nfsmount remote:path/to/files *
rclone nfsmount remote:path/to/files C:\path\parent\mount rclone nfsmount remote:path/to/files X:
rclone nfsmount remote:path/to/files X: rclone nfsmount remote:path/to/files C:\path\parent\mount
rclone nfsmount remote:path/to/files X:
```
Option `--volname` can be used to set a custom volume name for the mounted 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. file system. The default is to use the remote name and path.
@@ -116,24 +124,28 @@ to your nfsmount 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 this mode, it is a limitation Windows imposes on junctions, so the remote must always
be mounted to a drive letter. be mounted to a drive letter.
rclone nfsmount remote:path/to/files X: --network-mode ```sh
rclone nfsmount remote:path/to/files X: --network-mode
```
A volume name specified with `--volname` will be used to create the network share path. A volume name specified with `--volname` will be used to create the network share
A complete UNC path, such as `\\cloud\remote`, optionally with path path. A complete UNC path, such as `\\cloud\remote`, optionally with path
`\\cloud\remote\madeup\path`, will be used as is. Any other `\\cloud\remote\madeup\path`, will be used as is. Any other
string will be used as the share part, after a default prefix `\\server\`. 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. 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, You must make sure the volume name is unique when you are mounting more than one
or else the mount command will fail. The share name will treated as the volume label for drive, or else the mount command will fail. The share name will treated as the
the mapped drive, shown in Windows Explorer etc, while the complete 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 `\\server\share` will be reported as the remote UNC path by
`net use` etc, just like a normal network drive mapping. `net use` etc, just like a normal network drive mapping.
If you specify a full network share UNC path with `--volname`, this will implicitly If you specify a full network share UNC path with `--volname`, this will implicitly
set the `--network-mode` option, so the following two examples have same result: set the `--network-mode` option, so the following two examples have same result:
rclone nfsmount remote:path/to/files X: --network-mode ```sh
rclone nfsmount remote:path/to/files X: --volname \\server\share rclone nfsmount remote:path/to/files X: --network-mode
rclone nfsmount remote:path/to/files X: --volname \\server\share
```
You may also specify the network share UNC path as the mountpoint itself. Then rclone 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 will automatically assign a drive letter, same as with `*` and use that as
@@ -141,15 +153,16 @@ mountpoint, and instead use the UNC path specified as the volume name, as if it
specified with the `--volname` option. This will also implicitly set specified with the `--volname` option. This will also implicitly set
the `--network-mode` option. This means the following two examples have same result: the `--network-mode` option. This means the following two examples have same result:
rclone nfsmount remote:path/to/files \\cloud\remote ```sh
rclone nfsmount remote:path/to/files * --volname \\cloud\remote rclone nfsmount remote:path/to/files \\cloud\remote
rclone nfsmount remote:path/to/files * --volname \\cloud\remote
```
There is yet another way to enable network mode, and to set the share path, 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: and that is to pass the "native" libfuse/WinFsp option directly:
`--fuse-flag --VolumePrefix=\server\share`. Note that the path `--fuse-flag --VolumePrefix=\server\share`. Note that the path
must be with just a single backslash prefix in this case. must be with just a single backslash prefix in this case.
*Note:* In previous versions of rclone this was the only supported method. *Note:* In previous versions of rclone this was the only supported method.
[Read more about drive mapping](https://en.wikipedia.org/wiki/Drive_mapping) [Read more about drive mapping](https://en.wikipedia.org/wiki/Drive_mapping)
@@ -162,11 +175,11 @@ The FUSE emulation layer on Windows must convert between the POSIX-based
permission model used in FUSE, and the permission model used in Windows, permission model used in FUSE, and the permission model used in Windows,
based on access-control lists (ACL). based on access-control lists (ACL).
The mounted filesystem will normally get three entries in its access-control list (ACL), The mounted filesystem will normally get three entries in its access-control list
representing permissions for the POSIX permission scopes: Owner, group and others. (ACL), representing permissions for the POSIX permission scopes: Owner, group and
By default, the owner and group will be taken from the current user, and the built-in others. By default, the owner and group will be taken from the current user, and
group "Everyone" will be used to represent others. The user/group can be customized the built-in group "Everyone" will be used to represent others. The user/group can
with FUSE options "UserName" and "GroupName", be customized with FUSE options "UserName" and "GroupName",
e.g. `-o UserName=user123 -o GroupName="Authenticated Users"`. e.g. `-o UserName=user123 -o GroupName="Authenticated Users"`.
The permissions on each entry will be set according to [options](#options) The permissions on each entry will be set according to [options](#options)
`--dir-perms` and `--file-perms`, which takes a value in traditional Unix `--dir-perms` and `--file-perms`, which takes a value in traditional Unix
@@ -266,58 +279,63 @@ does not suffer from the same limitations.
## Mounting on macOS ## Mounting on macOS
Mounting on macOS can be done either via [built-in NFS server](/commands/rclone_serve_nfs/), [macFUSE](https://osxfuse.github.io/) Mounting on macOS can be done either via [built-in NFS server](/commands/rclone_serve_nfs/),
(also known as osxfuse) or [FUSE-T](https://www.fuse-t.org/). macFUSE is a traditional [macFUSE](https://osxfuse.github.io/) (also known as osxfuse) or
FUSE driver utilizing a macOS kernel extension (kext). FUSE-T is an alternative FUSE system [FUSE-T](https://www.fuse-t.org/).macFUSE is a traditional FUSE driver utilizing
which "mounts" via an NFSv4 local server. a macOS kernel extension (kext). FUSE-T is an alternative FUSE system which
"mounts" via an NFSv4 local server.
#### Unicode Normalization ### Unicode Normalization
It is highly recommended to keep the default of `--no-unicode-normalization=false` It is highly recommended to keep the default of `--no-unicode-normalization=false`
for all `mount` and `serve` commands on macOS. For details, see [vfs-case-sensitivity](https://rclone.org/commands/rclone_mount/#vfs-case-sensitivity). for all `mount` and `serve` commands on macOS. For details, see [vfs-case-sensitivity](https://rclone.org/commands/rclone_mount/#vfs-case-sensitivity).
### NFS mount ### NFS mount
This method spins up an NFS server using [serve nfs](/commands/rclone_serve_nfs/) command and mounts This method spins up an NFS server using [serve nfs](/commands/rclone_serve_nfs/)
it to the specified mountpoint. If you run this in background mode using |--daemon|, you will need to command and mounts it to the specified mountpoint. If you run this in background
send SIGTERM signal to the rclone process using |kill| command to stop the mount. mode using |--daemon|, you will need to send SIGTERM signal to the rclone process
using |kill| command to stop the mount.
Note that `--nfs-cache-handle-limit` controls the maximum number of cached file handles stored by the `nfsmount` caching handler. Note that `--nfs-cache-handle-limit` controls the maximum number of cached file
This should not be set too low or you may experience errors when trying to access files. The default is 1000000, handles stored by the `nfsmount` caching handler. This should not be set too low
or you may experience errors when trying to access files. The default is 1000000,
but consider lowering this limit if the server's system resource usage causes problems. but consider lowering this limit if the server's system resource usage causes problems.
### macFUSE Notes ### macFUSE Notes
If installing macFUSE using [dmg packages](https://github.com/osxfuse/osxfuse/releases) from If installing macFUSE using [dmg packages](https://github.com/osxfuse/osxfuse/releases)
the website, rclone will locate the macFUSE libraries without any further intervention. from the website, rclone will locate the macFUSE libraries without any further intervention.
If however, macFUSE is installed using the [macports](https://www.macports.org/) package manager, If however, macFUSE is installed using the [macports](https://www.macports.org/)
the following addition steps are required. package manager, the following addition steps are required.
sudo mkdir /usr/local/lib ```sh
cd /usr/local/lib sudo mkdir /usr/local/lib
sudo ln -s /opt/local/lib/libfuse.2.dylib cd /usr/local/lib
sudo ln -s /opt/local/lib/libfuse.2.dylib
```
### FUSE-T Limitations, Caveats, and Notes ### FUSE-T Limitations, Caveats, and Notes
There are some limitations, caveats, and notes about how it works. These are current as There are some limitations, caveats, and notes about how it works. These are
of FUSE-T version 1.0.14. current as of FUSE-T version 1.0.14.
#### ModTime update on read #### ModTime update on read
As per the [FUSE-T wiki](https://github.com/macos-fuse-t/fuse-t/wiki#caveats): As per the [FUSE-T wiki](https://github.com/macos-fuse-t/fuse-t/wiki#caveats):
> File access and modification times cannot be set separately as it seems to be an > File access and modification times cannot be set separately as it seems to be an
> issue with the NFS client which always modifies both. Can be reproduced with > issue with the NFS client which always modifies both. Can be reproduced with
> 'touch -m' and 'touch -a' commands > 'touch -m' and 'touch -a' commands
This means that viewing files with various tools, notably macOS Finder, will cause rlcone This means that viewing files with various tools, notably macOS Finder, will cause
to update the modification time of the file. This may make rclone upload a full new copy rlcone to update the modification time of the file. This may make rclone upload a
of the file. full new copy of the file.
#### Read Only mounts #### Read Only mounts
When mounting with `--read-only`, attempts to write to files will fail *silently* as When mounting with `--read-only`, attempts to write to files will fail *silently*
opposed to with a clear warning as in macFUSE. as opposed to with a clear warning as in macFUSE.
## Limitations ## Limitations
@@ -418,12 +436,14 @@ helper you should symlink rclone binary to `/sbin/mount.rclone` and optionally
rclone will detect it and translate command-line arguments appropriately. rclone will detect it and translate command-line arguments appropriately.
Now you can run classic mounts like this: Now you can run classic mounts like this:
```
```sh
mount sftp1:subdir /mnt/data -t rclone -o vfs_cache_mode=writes,sftp_key_file=/path/to/pem mount sftp1:subdir /mnt/data -t rclone -o vfs_cache_mode=writes,sftp_key_file=/path/to/pem
``` ```
or create systemd mount units: or create systemd mount units:
```
```ini
# /etc/systemd/system/mnt-data.mount # /etc/systemd/system/mnt-data.mount
[Unit] [Unit]
Description=Mount for /mnt/data Description=Mount for /mnt/data
@@ -435,7 +455,8 @@ Options=rw,_netdev,allow_other,args2env,vfs-cache-mode=writes,config=/etc/rclone
``` ```
optionally accompanied by systemd automount unit optionally accompanied by systemd automount unit
```
```ini
# /etc/systemd/system/mnt-data.automount # /etc/systemd/system/mnt-data.automount
[Unit] [Unit]
Description=AutoMount for /mnt/data Description=AutoMount for /mnt/data
@@ -447,7 +468,8 @@ WantedBy=multi-user.target
``` ```
or add in `/etc/fstab` a line like or add in `/etc/fstab` a line like
```
```sh
sftp1:subdir /mnt/data rclone rw,noauto,nofail,_netdev,x-systemd.automount,args2env,vfs_cache_mode=writes,config=/etc/rclone.conf,cache_dir=/var/cache/rclone 0 0 sftp1:subdir /mnt/data rclone rw,noauto,nofail,_netdev,x-systemd.automount,args2env,vfs_cache_mode=writes,config=/etc/rclone.conf,cache_dir=/var/cache/rclone 0 0
``` ```
@@ -496,8 +518,10 @@ directory should be considered up to date and not refreshed from the
backend. Changes made through the VFS will appear immediately or backend. Changes made through the VFS will appear immediately or
invalidate the cache. invalidate the cache.
```text
--dir-cache-time duration Time to cache directory entries for (default 5m0s) --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) --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 However, changes made directly on the cloud storage by the web
interface or a different copy of rclone will only be picked up once interface or a different copy of rclone will only be picked up once
@@ -509,16 +533,22 @@ You can send a `SIGHUP` signal to rclone for it to flush all
directory caches, regardless of how old they are. Assuming only one directory caches, regardless of how old they are. Assuming only one
rclone instance is running, you can reset the cache like this: rclone instance is running, you can reset the cache like this:
kill -SIGHUP $(pidof rclone) ```sh
kill -SIGHUP $(pidof rclone)
```
If you configure rclone with a [remote control](/rc) then you can use If you configure rclone with a [remote control](/rc) then you can use
rclone rc to flush the whole directory cache: rclone rc to flush the whole directory cache:
rclone rc vfs/forget ```sh
rclone rc vfs/forget
```
Or individual files or directories: Or individual files or directories:
rclone rc vfs/forget file=path/to/file dir=path/to/dir ```sh
rclone rc vfs/forget file=path/to/file dir=path/to/dir
```
## VFS File Buffering ## VFS File Buffering
@@ -549,6 +579,7 @@ write simultaneously to a file. See below for more details.
Note that the VFS cache is separate from the cache backend and you may Note that the VFS cache is separate from the cache backend and you may
find that you need one or the other or both. find that you need one or the other or both.
```text
--cache-dir string Directory rclone will use for caching. --cache-dir string Directory rclone will use for caching.
--vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off) --vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
--vfs-cache-max-age duration Max time since last access of objects in the cache (default 1h0m0s) --vfs-cache-max-age duration Max time since last access of objects in the cache (default 1h0m0s)
@@ -556,6 +587,7 @@ find that you need one or the other or both.
--vfs-cache-min-free-space SizeSuffix Target minimum free space on the disk containing the cache (default off) --vfs-cache-min-free-space SizeSuffix Target minimum free space on the disk containing the cache (default off)
--vfs-cache-poll-interval duration Interval to poll the cache for stale objects (default 1m0s) --vfs-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) --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 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 files are stored in the user cache file area which is OS dependent but
@@ -603,13 +635,13 @@ directly to the remote without caching anything on disk.
This will mean some operations are not possible This will mean some operations are not possible
* Files can't be opened for both read AND write - Files can't be opened for both read AND write
* Files opened for write can't be seeked - Files opened for write can't be seeked
* Existing files opened for write must have O_TRUNC set - 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 read with O_TRUNC will be opened write only
* Files open for write only will behave as if O_TRUNC was supplied - Files open for write only will behave as if O_TRUNC was supplied
* Open modes O_APPEND, O_TRUNC are ignored - Open modes O_APPEND, O_TRUNC are ignored
* If an upload fails it can't be retried - If an upload fails it can't be retried
### --vfs-cache-mode minimal ### --vfs-cache-mode minimal
@@ -619,10 +651,10 @@ write will be a lot more compatible, but uses the minimal disk space.
These operations are not possible These operations are not possible
* Files opened for write only can't be seeked - Files opened for write only can't be seeked
* Existing files opened for write must have O_TRUNC set - Existing files opened for write must have O_TRUNC set
* Files opened for write only will ignore O_APPEND, O_TRUNC - Files opened for write only will ignore O_APPEND, O_TRUNC
* If an upload fails it can't be retried - If an upload fails it can't be retried
### --vfs-cache-mode writes ### --vfs-cache-mode writes
@@ -705,9 +737,11 @@ read, at the cost of an increased number of requests.
These flags control the chunking: These flags control the chunking:
```text
--vfs-read-chunk-size SizeSuffix Read the source objects in chunks (default 128M) --vfs-read-chunk-size SizeSuffix Read the source objects in chunks (default 128M)
--vfs-read-chunk-size-limit SizeSuffix Max chunk doubling size (default off) --vfs-read-chunk-size-limit SizeSuffix Max chunk doubling size (default off)
--vfs-read-chunk-streams int The number of parallel streams to read at once --vfs-read-chunk-streams int The number of parallel streams to read at once
```
The chunking behaves differently depending on the `--vfs-read-chunk-streams` parameter. The chunking behaves differently depending on the `--vfs-read-chunk-streams` parameter.
@@ -721,9 +755,9 @@ value is "off", which is the default, the limit is disabled and the chunk size
will grow indefinitely. will grow indefinitely.
With `--vfs-read-chunk-size 100M` and `--vfs-read-chunk-size-limit 0` 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. the following parts will be downloaded: 0-100M, 100M-200M, 200M-300M, 300M-400M
When `--vfs-read-chunk-size-limit 500M` is specified, the result would be and so on. When `--vfs-read-chunk-size-limit 500M` is specified, the result would
0-100M, 100M-300M, 300M-700M, 700M-1200M, 1200M-1700M and so on. 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. Setting `--vfs-read-chunk-size` to `0` or "off" disables chunked reading.
@@ -761,32 +795,41 @@ In particular S3 and Swift benefit hugely from the `--no-modtime` flag
(or use `--use-server-modtime` for a slightly different effect) as each (or use `--use-server-modtime` for a slightly different effect) as each
read of the modification time takes a transaction. read of the modification time takes a transaction.
```text
--no-checksum Don't compare checksums on up/download. --no-checksum Don't compare checksums on up/download.
--no-modtime Don't read/write the modification time (can speed things up). --no-modtime Don't read/write the modification time (can speed things up).
--no-seek Don't allow seeking in files. --no-seek Don't allow seeking in files.
--read-only Only allow read-only access. --read-only Only allow read-only access.
```
Sometimes rclone is delivered reads or writes out of order. Rather 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 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 write to come in. These flags only come into effect when not using an
on disk cache file. on disk cache file.
```text
--vfs-read-wait duration Time to wait for in-sequence read before seeking (default 20ms) --vfs-read-wait duration Time to wait for in-sequence read before seeking (default 20ms)
--vfs-write-wait duration Time to wait for in-sequence write before giving error (default 1s) --vfs-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), 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 the global flag `--transfers` can be set to adjust the number of parallel uploads
modified files from the cache (the related global flag `--checkers` has no effect on the VFS). of modified files from the cache (the related global flag `--checkers` has no
effect on the VFS).
```text
--transfers int Number of file transfers to run in parallel (default 4) --transfers int Number of file transfers to run in parallel (default 4)
```
## Symlinks ## Symlinks
By default the VFS does not support symlinks. However this may be By default the VFS does not support symlinks. However this may be
enabled with either of the following flags: enabled with either of the following flags:
```text
--links Translate symlinks to/from regular files with a '.rclonelink' extension. --links Translate symlinks to/from regular files with a '.rclonelink' extension.
--vfs-links Translate symlinks to/from regular files with a '.rclonelink' extension for the VFS --vfs-links Translate symlinks to/from regular files with a '.rclonelink' extension for the VFS
```
As most cloud storage systems do not support symlinks directly, rclone As most cloud storage systems do not support symlinks directly, rclone
stores the symlink as a normal file with a special extension. So a stores the symlink as a normal file with a special extension. So a
@@ -798,7 +841,8 @@ Note that `--links` enables symlink translation globally in rclone -
this includes any backend which supports the concept (for example the this includes any backend which supports the concept (for example the
local backend). `--vfs-links` just enables it for the VFS layer. local backend). `--vfs-links` just enables it for the VFS layer.
This scheme is compatible with that used by the [local backend with the --local-links flag](/local/#symlinks-junction-points). This scheme is compatible with that used by the
[local backend with the --local-links flag](/local/#symlinks-junction-points).
The `--vfs-links` flag has been designed for `rclone mount`, `rclone The `--vfs-links` flag has been designed for `rclone mount`, `rclone
nfsmount` and `rclone serve nfs`. nfsmount` and `rclone serve nfs`.
@@ -808,7 +852,7 @@ It hasn't been tested with the other `rclone serve` commands yet.
A limitation of the current implementation is that it expects the A limitation of the current implementation is that it expects the
caller to resolve sub-symlinks. For example given this directory tree caller to resolve sub-symlinks. For example given this directory tree
``` ```text
. .
├── dir ├── dir
│   └── file.txt │   └── file.txt
@@ -886,7 +930,9 @@ sync`.
This flag allows you to manually set the statistics about the filing system. This flag allows you to manually set the statistics about the filing system.
It can be useful when those statistics cannot be read correctly automatically. It can be useful when those statistics cannot be read correctly automatically.
```text
--vfs-disk-space-total-size Manually set the total disk space size (example: 256G, default: -1) --vfs-disk-space-total-size Manually set the total disk space size (example: 256G, default: -1)
```
## Alternate report of used bytes ## Alternate report of used bytes
@@ -897,7 +943,7 @@ With this flag set, instead of relying on the backend to report this
information, rclone will scan the whole remote similar to `rclone size` information, rclone will scan the whole remote similar to `rclone size`
and compute the total used space itself. and compute the total used space itself.
_WARNING._ Contrary to `rclone size`, this flag ignores filters so that the **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 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. calls resulting in extra charges. Use it as a last resort and only with caching.
@@ -915,7 +961,7 @@ Note that some backends won't create metadata unless you pass in the
For example, using `rclone mount` with `--metadata --vfs-metadata-extension .metadata` For example, using `rclone mount` with `--metadata --vfs-metadata-extension .metadata`
we get we get
``` ```sh
$ ls -l /mnt/ $ ls -l /mnt/
total 1048577 total 1048577
-rw-rw-r-- 1 user user 1073741824 Mar 3 16:03 1G -rw-rw-r-- 1 user user 1073741824 Mar 3 16:03 1G
@@ -940,8 +986,6 @@ If the file has no metadata it will be returned as `{}` and if there
is an error reading the metadata the error will be returned as is an error reading the metadata the error will be returned as
`{"error":"error string"}`. `{"error":"error string"}`.
``` ```
rclone nfsmount remote:path /path/to/mountpoint [flags] rclone nfsmount remote:path /path/to/mountpoint [flags]
``` ```
@@ -1017,7 +1061,7 @@ See the [global flags page](/flags/) for global options not listed here.
Flags for filtering directory listings Flags for filtering directory listings
``` ```text
--delete-excluded Delete files on dest excluded from sync --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern --exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin) --exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
@@ -1045,5 +1089,10 @@ Flags for filtering directory listings
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends. * [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends.
<!-- markdownlint-restore -->

View File

@@ -13,9 +13,8 @@ Obscure password for use in the rclone config file.
In the rclone config file, human-readable passwords are In the rclone config file, human-readable passwords are
obscured. Obscuring them is done by encrypting them and writing them obscured. Obscuring them is done by encrypting them and writing them
out in base64. This is **not** a secure way of encrypting these out in base64. This is **not** a secure way of encrypting these
passwords as rclone can decrypt them - it is to prevent "eyedropping" passwords as rclone can decrypt them - it is to prevent "eyedropping" -
- namely someone seeing a password in the rclone config file by namely someone seeing a password in the rclone config file by accident.
accident.
Many equally important things (like access tokens) are not obscured in Many equally important things (like access tokens) are not obscured in
the config file. However it is very hard to shoulder surf a 64 the config file. However it is very hard to shoulder surf a 64
@@ -25,7 +24,9 @@ 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 argument by passing a hyphen as an argument. This will use the first
line of STDIN as the password not including the trailing newline. line of STDIN as the password not including the trailing newline.
echo "secretpassword" | rclone obscure - ```sh
echo "secretpassword" | rclone obscure -
```
If there is no data on STDIN to read, rclone obscure will default to If there is no data on STDIN to read, rclone obscure will default to
obfuscating the hyphen itself. obfuscating the hyphen itself.
@@ -48,5 +49,10 @@ See the [global flags page](/flags/) for global options not listed here.
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends. * [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends.
<!-- markdownlint-restore -->

View File

@@ -15,13 +15,13 @@ include/exclude filters - everything will be removed. Use the
delete files. To delete empty directories only, use command delete files. To delete empty directories only, use command
[rmdir](/commands/rclone_rmdir/) or [rmdirs](/commands/rclone_rmdirs/). [rmdir](/commands/rclone_rmdir/) or [rmdirs](/commands/rclone_rmdirs/).
The concurrency of this operation is controlled by the `--checkers` global flag. However, some backends will The concurrency of this operation is controlled by the `--checkers` global flag.
implement this command directly, in which case `--checkers` will be ignored. However, some backends will implement this command directly, in which
case `--checkers` will be ignored.
**Important**: Since this can cause data loss, test first with the **Important**: Since this can cause data loss, test first with the
`--dry-run` or the `--interactive`/`-i` flag. `--dry-run` or the `--interactive`/`-i` flag.
``` ```
rclone purge remote:path [flags] rclone purge remote:path [flags]
``` ```
@@ -39,7 +39,7 @@ See the [global flags page](/flags/) for global options not listed here.
Important flags useful for most commands Important flags useful for most commands
``` ```text
-n, --dry-run Do a trial run with no permanent changes -n, --dry-run Do a trial run with no permanent changes
-i, --interactive Enable interactive mode -i, --interactive Enable interactive mode
-v, --verbose count Print lots more stuff (repeat for more) -v, --verbose count Print lots more stuff (repeat for more)
@@ -47,5 +47,10 @@ Important flags useful for most commands
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends. * [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends.
<!-- markdownlint-restore -->

View File

@@ -12,8 +12,8 @@ Run a command against a running rclone.
This runs a command against a running rclone. Use the `--url` flag to 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 specify an non default URL to connect on. This can be either a
":port" which is taken to mean "http://localhost:port" or a ":port" which is taken to mean <http://localhost:port> or a
"host:port" which is taken to mean "http://host:port" "host:port" which is taken to mean <http://host:port>.
A username and password can be passed in with `--user` and `--pass`. A username and password can be passed in with `--user` and `--pass`.
@@ -22,10 +22,12 @@ Note that `--rc-addr`, `--rc-user`, `--rc-pass` will be read also for
The `--unix-socket` flag can be used to connect over a unix socket like this The `--unix-socket` flag can be used to connect over a unix socket like this
# start server on /tmp/my.socket ```sh
rclone rcd --rc-addr unix:///tmp/my.socket # start server on /tmp/my.socket
# Connect to it rclone rcd --rc-addr unix:///tmp/my.socket
rclone rc --unix-socket /tmp/my.socket core/stats # Connect to it
rclone rc --unix-socket /tmp/my.socket core/stats
```
Arguments should be passed in as parameter=value. Arguments should be passed in as parameter=value.
@@ -40,29 +42,38 @@ options in the form `-o key=value` or `-o key`. It can be repeated as
many times as required. This is useful for rc commands which take the many times as required. This is useful for rc commands which take the
"opt" parameter which by convention is a dictionary of strings. "opt" parameter which by convention is a dictionary of strings.
-o key=value -o key2 ```text
-o key=value -o key2
```
Will place this in the "opt" value Will place this in the "opt" value
{"key":"value", "key2","") ```json
{"key":"value", "key2","")
```
The `-a`/`--arg` option can be used to set strings in the "arg" value. It The `-a`/`--arg` option can be used to set strings in the "arg" value. It
can be repeated as many times as required. This is useful for rc can be repeated as many times as required. This is useful for rc
commands which take the "arg" parameter which by convention is a list commands which take the "arg" parameter which by convention is a list
of strings. of strings.
-a value -a value2 ```text
-a value -a value2
```
Will place this in the "arg" value Will place this in the "arg" value
["value", "value2"] ```json
["value", "value2"]
```
Use `--loopback` to connect to the rclone instance running `rclone rc`. Use `--loopback` to connect to the rclone instance running `rclone rc`.
This is very useful for testing commands without having to run an This is very useful for testing commands without having to run an
rclone rc server, e.g.: rclone rc server, e.g.:
rclone rc --loopback operations/about fs=/ ```sh
rclone rc --loopback operations/about fs=/
```
Use `rclone rc` to see a list of all possible commands. Use `rclone rc` to see a list of all possible commands.
@@ -89,5 +100,10 @@ See the [global flags page](/flags/) for global options not listed here.
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends. * [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends.
<!-- markdownlint-restore -->

View File

@@ -12,8 +12,10 @@ Copies standard input to file on remote.
Reads from standard input (stdin) and copies it to a single remote file. Reads from standard input (stdin) and copies it to a single remote file.
echo "hello world" | rclone rcat remote:path/to/file ```sh
ffmpeg - | rclone rcat remote:path/to/file echo "hello world" | rclone rcat remote:path/to/file
ffmpeg - | rclone rcat remote:path/to/file
```
If the remote file already exists, it will be overwritten. If the remote file already exists, it will be overwritten.
@@ -58,7 +60,7 @@ See the [global flags page](/flags/) for global options not listed here.
Important flags useful for most commands Important flags useful for most commands
``` ```text
-n, --dry-run Do a trial run with no permanent changes -n, --dry-run Do a trial run with no permanent changes
-i, --interactive Enable interactive mode -i, --interactive Enable interactive mode
-v, --verbose count Print lots more stuff (repeat for more) -v, --verbose count Print lots more stuff (repeat for more)
@@ -66,5 +68,10 @@ Important flags useful for most commands
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends. * [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends.
<!-- markdownlint-restore -->

View File

@@ -76,13 +76,16 @@ by `--rc-addr`).
This allows rclone to be a socket-activated service. This allows rclone to be a socket-activated service.
It can be configured with .socket and .service unit files as described in It can be configured with .socket and .service unit files as described in
https://www.freedesktop.org/software/systemd/man/latest/systemd.socket.html <https://www.freedesktop.org/software/systemd/man/latest/systemd.socket.html>.
Socket activation can be tested ad-hoc with the `systemd-socket-activate`command Socket activation can be tested ad-hoc with the `systemd-socket-activate`command
systemd-socket-activate -l 8000 -- rclone serve ```sh
systemd-socket-activate -l 8000 -- rclone serve
```
This will socket-activate rclone on the first connection to port 8000 over TCP. This will socket-activate rclone on the first connection to port 8000 over TCP.
### Template ### Template
`--rc-template` allows a user to specify a custom markup template for HTTP `--rc-template` allows a user to specify a custom markup template for HTTP
@@ -108,9 +111,9 @@ to be used within the template to server pages:
|-- .Size | Size in Bytes of the entry. | |-- .Size | Size in Bytes of the entry. |
|-- .ModTime | The UTC timestamp of an entry. | |-- .ModTime | The UTC timestamp of an entry. |
The server also makes the following functions available so that they can be used within the The server also makes the following functions available so that they can be used
template. These functions help extend the options for dynamic rendering of HTML. They can within the template. These functions help extend the options for dynamic
be used to render HTML based on specific conditions. rendering of HTML. They can be used to render HTML based on specific conditions.
| Function | Description | | Function | Description |
| :---------- | :---------- | | :---------- | :---------- |
@@ -128,7 +131,8 @@ set a single username and password with the `--rc-user` and `--rc-pass` flags.
Alternatively, you can have the reverse proxy manage authentication and use the Alternatively, you can have the reverse proxy manage authentication and use the
username provided in the configured header with `--user-from-header` (e.g., `--rc---user-from-header=x-remote-user`). username provided in the configured header with `--user-from-header` (e.g., `--rc---user-from-header=x-remote-user`).
Ensure the proxy is trusted and headers cannot be spoofed, as misconfiguration may lead to unauthorized access. Ensure the proxy is trusted and headers cannot be spoofed, as misconfiguration
may lead to unauthorized access.
If either of the above authentication methods is not configured and client If either of the above authentication methods is not configured and client
certificates are required by the `--client-ca` flag passed to the server, the certificates are required by the `--client-ca` flag passed to the server, the
@@ -140,9 +144,11 @@ authentication. Bcrypt is recommended.
To create an htpasswd file: To create an htpasswd file:
touch htpasswd ```sh
htpasswd -B htpasswd user touch htpasswd
htpasswd -B htpasswd anotherUser htpasswd -B htpasswd user
htpasswd -B htpasswd anotherUser
```
The password file can be updated while rclone is running. The password file can be updated while rclone is running.
@@ -150,8 +156,6 @@ Use `--rc-realm` to set the authentication realm.
Use `--rc-salt` to change the password hashing salt from the default. Use `--rc-salt` to change the password hashing salt from the default.
``` ```
rclone rcd <path to files to serve>* [flags] rclone rcd <path to files to serve>* [flags]
``` ```
@@ -169,7 +173,7 @@ See the [global flags page](/flags/) for global options not listed here.
Flags to control the Remote Control API Flags to control the Remote Control API
``` ```text
--rc Enable the remote control server --rc Enable the remote control server
--rc-addr stringArray IPaddress:Port or :Port to bind server to (default localhost:5572) --rc-addr stringArray IPaddress:Port or :Port to bind server to (default localhost:5572)
--rc-allow-origin string Origin which cross-domain request (CORS) can be executed from --rc-allow-origin string Origin which cross-domain request (CORS) can be executed from
@@ -204,5 +208,10 @@ Flags to control the Remote Control API
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends. * [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends.
<!-- markdownlint-restore -->

View File

@@ -16,7 +16,6 @@ with option `--rmdirs`) to do that.
To delete a path and any objects in it, use [purge](/commands/rclone_purge/) command. To delete a path and any objects in it, use [purge](/commands/rclone_purge/) command.
``` ```
rclone rmdir remote:path [flags] rclone rmdir remote:path [flags]
``` ```
@@ -34,7 +33,7 @@ See the [global flags page](/flags/) for global options not listed here.
Important flags useful for most commands Important flags useful for most commands
``` ```text
-n, --dry-run Do a trial run with no permanent changes -n, --dry-run Do a trial run with no permanent changes
-i, --interactive Enable interactive mode -i, --interactive Enable interactive mode
-v, --verbose count Print lots more stuff (repeat for more) -v, --verbose count Print lots more stuff (repeat for more)
@@ -42,5 +41,10 @@ Important flags useful for most commands
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends. * [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends.
<!-- markdownlint-restore -->

View File

@@ -29,7 +29,6 @@ if you have thousands of empty directories consider increasing this number.
To delete a path and any objects in it, use the [purge](/commands/rclone_purge/) To delete a path and any objects in it, use the [purge](/commands/rclone_purge/)
command. command.
``` ```
rclone rmdirs remote:path [flags] rclone rmdirs remote:path [flags]
``` ```
@@ -48,7 +47,7 @@ See the [global flags page](/flags/) for global options not listed here.
Important flags useful for most commands Important flags useful for most commands
``` ```text
-n, --dry-run Do a trial run with no permanent changes -n, --dry-run Do a trial run with no permanent changes
-i, --interactive Enable interactive mode -i, --interactive Enable interactive mode
-v, --verbose count Print lots more stuff (repeat for more) -v, --verbose count Print lots more stuff (repeat for more)
@@ -56,5 +55,10 @@ Important flags useful for most commands
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends. * [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends.
<!-- markdownlint-restore -->

View File

@@ -57,9 +57,8 @@ 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. 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 If it fails for you with the message `unknown command "selfupdate"` then
you will need to update manually following the install instructions located you will need to update manually following the
at https://rclone.org/install/ [install documentation](https://rclone.org/install/).
``` ```
rclone selfupdate [flags] rclone selfupdate [flags]
@@ -81,5 +80,10 @@ See the [global flags page](/flags/) for global options not listed here.
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends. * [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends.
<!-- markdownlint-restore -->

View File

@@ -13,11 +13,12 @@ Serve a remote over a protocol.
Serve a remote over a given protocol. Requires the use of a Serve a remote over a given protocol. Requires the use of a
subcommand to specify the protocol, e.g. subcommand to specify the protocol, e.g.
rclone serve http remote: ```sh
rclone serve http remote:
```
Each subcommand has its own options which you can see in their help. Each subcommand has its own options which you can see in their help.
``` ```
rclone serve <protocol> [opts] <remote> [flags] rclone serve <protocol> [opts] <remote> [flags]
``` ```
@@ -32,6 +33,9 @@ See the [global flags page](/flags/) for global options not listed here.
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends. * [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends.
* [rclone serve dlna](/commands/rclone_serve_dlna/) - Serve remote:path over DLNA * [rclone serve dlna](/commands/rclone_serve_dlna/) - Serve remote:path over DLNA
* [rclone serve docker](/commands/rclone_serve_docker/) - Serve any remote on docker's volume plugin API. * [rclone serve docker](/commands/rclone_serve_docker/) - Serve any remote on docker's volume plugin API.
@@ -43,3 +47,5 @@ See the [global flags page](/flags/) for global options not listed here.
* [rclone serve sftp](/commands/rclone_serve_sftp/) - Serve the remote over SFTP. * [rclone serve sftp](/commands/rclone_serve_sftp/) - Serve the remote over SFTP.
* [rclone serve webdav](/commands/rclone_serve_webdav/) - Serve remote:path over WebDAV. * [rclone serve webdav](/commands/rclone_serve_webdav/) - Serve remote:path over WebDAV.
<!-- markdownlint-restore -->

View File

@@ -58,8 +58,10 @@ directory should be considered up to date and not refreshed from the
backend. Changes made through the VFS will appear immediately or backend. Changes made through the VFS will appear immediately or
invalidate the cache. invalidate the cache.
```text
--dir-cache-time duration Time to cache directory entries for (default 5m0s) --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) --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 However, changes made directly on the cloud storage by the web
interface or a different copy of rclone will only be picked up once interface or a different copy of rclone will only be picked up once
@@ -71,16 +73,22 @@ You can send a `SIGHUP` signal to rclone for it to flush all
directory caches, regardless of how old they are. Assuming only one directory caches, regardless of how old they are. Assuming only one
rclone instance is running, you can reset the cache like this: rclone instance is running, you can reset the cache like this:
kill -SIGHUP $(pidof rclone) ```sh
kill -SIGHUP $(pidof rclone)
```
If you configure rclone with a [remote control](/rc) then you can use If you configure rclone with a [remote control](/rc) then you can use
rclone rc to flush the whole directory cache: rclone rc to flush the whole directory cache:
rclone rc vfs/forget ```sh
rclone rc vfs/forget
```
Or individual files or directories: Or individual files or directories:
rclone rc vfs/forget file=path/to/file dir=path/to/dir ```sh
rclone rc vfs/forget file=path/to/file dir=path/to/dir
```
## VFS File Buffering ## VFS File Buffering
@@ -111,6 +119,7 @@ write simultaneously to a file. See below for more details.
Note that the VFS cache is separate from the cache backend and you may Note that the VFS cache is separate from the cache backend and you may
find that you need one or the other or both. find that you need one or the other or both.
```text
--cache-dir string Directory rclone will use for caching. --cache-dir string Directory rclone will use for caching.
--vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off) --vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
--vfs-cache-max-age duration Max time since last access of objects in the cache (default 1h0m0s) --vfs-cache-max-age duration Max time since last access of objects in the cache (default 1h0m0s)
@@ -118,6 +127,7 @@ find that you need one or the other or both.
--vfs-cache-min-free-space SizeSuffix Target minimum free space on the disk containing the cache (default off) --vfs-cache-min-free-space SizeSuffix Target minimum free space on the disk containing the cache (default off)
--vfs-cache-poll-interval duration Interval to poll the cache for stale objects (default 1m0s) --vfs-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) --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 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 files are stored in the user cache file area which is OS dependent but
@@ -165,13 +175,13 @@ directly to the remote without caching anything on disk.
This will mean some operations are not possible This will mean some operations are not possible
* Files can't be opened for both read AND write - Files can't be opened for both read AND write
* Files opened for write can't be seeked - Files opened for write can't be seeked
* Existing files opened for write must have O_TRUNC set - 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 read with O_TRUNC will be opened write only
* Files open for write only will behave as if O_TRUNC was supplied - Files open for write only will behave as if O_TRUNC was supplied
* Open modes O_APPEND, O_TRUNC are ignored - Open modes O_APPEND, O_TRUNC are ignored
* If an upload fails it can't be retried - If an upload fails it can't be retried
### --vfs-cache-mode minimal ### --vfs-cache-mode minimal
@@ -181,10 +191,10 @@ write will be a lot more compatible, but uses the minimal disk space.
These operations are not possible These operations are not possible
* Files opened for write only can't be seeked - Files opened for write only can't be seeked
* Existing files opened for write must have O_TRUNC set - Existing files opened for write must have O_TRUNC set
* Files opened for write only will ignore O_APPEND, O_TRUNC - Files opened for write only will ignore O_APPEND, O_TRUNC
* If an upload fails it can't be retried - If an upload fails it can't be retried
### --vfs-cache-mode writes ### --vfs-cache-mode writes
@@ -267,9 +277,11 @@ read, at the cost of an increased number of requests.
These flags control the chunking: These flags control the chunking:
```text
--vfs-read-chunk-size SizeSuffix Read the source objects in chunks (default 128M) --vfs-read-chunk-size SizeSuffix Read the source objects in chunks (default 128M)
--vfs-read-chunk-size-limit SizeSuffix Max chunk doubling size (default off) --vfs-read-chunk-size-limit SizeSuffix Max chunk doubling size (default off)
--vfs-read-chunk-streams int The number of parallel streams to read at once --vfs-read-chunk-streams int The number of parallel streams to read at once
```
The chunking behaves differently depending on the `--vfs-read-chunk-streams` parameter. The chunking behaves differently depending on the `--vfs-read-chunk-streams` parameter.
@@ -283,9 +295,9 @@ value is "off", which is the default, the limit is disabled and the chunk size
will grow indefinitely. will grow indefinitely.
With `--vfs-read-chunk-size 100M` and `--vfs-read-chunk-size-limit 0` 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. the following parts will be downloaded: 0-100M, 100M-200M, 200M-300M, 300M-400M
When `--vfs-read-chunk-size-limit 500M` is specified, the result would be and so on. When `--vfs-read-chunk-size-limit 500M` is specified, the result would
0-100M, 100M-300M, 300M-700M, 700M-1200M, 1200M-1700M and so on. 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. Setting `--vfs-read-chunk-size` to `0` or "off" disables chunked reading.
@@ -323,32 +335,41 @@ In particular S3 and Swift benefit hugely from the `--no-modtime` flag
(or use `--use-server-modtime` for a slightly different effect) as each (or use `--use-server-modtime` for a slightly different effect) as each
read of the modification time takes a transaction. read of the modification time takes a transaction.
```text
--no-checksum Don't compare checksums on up/download. --no-checksum Don't compare checksums on up/download.
--no-modtime Don't read/write the modification time (can speed things up). --no-modtime Don't read/write the modification time (can speed things up).
--no-seek Don't allow seeking in files. --no-seek Don't allow seeking in files.
--read-only Only allow read-only access. --read-only Only allow read-only access.
```
Sometimes rclone is delivered reads or writes out of order. Rather 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 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 write to come in. These flags only come into effect when not using an
on disk cache file. on disk cache file.
```text
--vfs-read-wait duration Time to wait for in-sequence read before seeking (default 20ms) --vfs-read-wait duration Time to wait for in-sequence read before seeking (default 20ms)
--vfs-write-wait duration Time to wait for in-sequence write before giving error (default 1s) --vfs-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), 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 the global flag `--transfers` can be set to adjust the number of parallel uploads
modified files from the cache (the related global flag `--checkers` has no effect on the VFS). of modified files from the cache (the related global flag `--checkers` has no
effect on the VFS).
```text
--transfers int Number of file transfers to run in parallel (default 4) --transfers int Number of file transfers to run in parallel (default 4)
```
## Symlinks ## Symlinks
By default the VFS does not support symlinks. However this may be By default the VFS does not support symlinks. However this may be
enabled with either of the following flags: enabled with either of the following flags:
```text
--links Translate symlinks to/from regular files with a '.rclonelink' extension. --links Translate symlinks to/from regular files with a '.rclonelink' extension.
--vfs-links Translate symlinks to/from regular files with a '.rclonelink' extension for the VFS --vfs-links Translate symlinks to/from regular files with a '.rclonelink' extension for the VFS
```
As most cloud storage systems do not support symlinks directly, rclone As most cloud storage systems do not support symlinks directly, rclone
stores the symlink as a normal file with a special extension. So a stores the symlink as a normal file with a special extension. So a
@@ -360,7 +381,8 @@ Note that `--links` enables symlink translation globally in rclone -
this includes any backend which supports the concept (for example the this includes any backend which supports the concept (for example the
local backend). `--vfs-links` just enables it for the VFS layer. local backend). `--vfs-links` just enables it for the VFS layer.
This scheme is compatible with that used by the [local backend with the --local-links flag](/local/#symlinks-junction-points). This scheme is compatible with that used by the
[local backend with the --local-links flag](/local/#symlinks-junction-points).
The `--vfs-links` flag has been designed for `rclone mount`, `rclone The `--vfs-links` flag has been designed for `rclone mount`, `rclone
nfsmount` and `rclone serve nfs`. nfsmount` and `rclone serve nfs`.
@@ -370,7 +392,7 @@ It hasn't been tested with the other `rclone serve` commands yet.
A limitation of the current implementation is that it expects the A limitation of the current implementation is that it expects the
caller to resolve sub-symlinks. For example given this directory tree caller to resolve sub-symlinks. For example given this directory tree
``` ```text
. .
├── dir ├── dir
│   └── file.txt │   └── file.txt
@@ -448,7 +470,9 @@ sync`.
This flag allows you to manually set the statistics about the filing system. This flag allows you to manually set the statistics about the filing system.
It can be useful when those statistics cannot be read correctly automatically. It can be useful when those statistics cannot be read correctly automatically.
```text
--vfs-disk-space-total-size Manually set the total disk space size (example: 256G, default: -1) --vfs-disk-space-total-size Manually set the total disk space size (example: 256G, default: -1)
```
## Alternate report of used bytes ## Alternate report of used bytes
@@ -459,7 +483,7 @@ With this flag set, instead of relying on the backend to report this
information, rclone will scan the whole remote similar to `rclone size` information, rclone will scan the whole remote similar to `rclone size`
and compute the total used space itself. and compute the total used space itself.
_WARNING._ Contrary to `rclone size`, this flag ignores filters so that the **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 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. calls resulting in extra charges. Use it as a last resort and only with caching.
@@ -477,7 +501,7 @@ Note that some backends won't create metadata unless you pass in the
For example, using `rclone mount` with `--metadata --vfs-metadata-extension .metadata` For example, using `rclone mount` with `--metadata --vfs-metadata-extension .metadata`
we get we get
``` ```sh
$ ls -l /mnt/ $ ls -l /mnt/
total 1048577 total 1048577
-rw-rw-r-- 1 user user 1073741824 Mar 3 16:03 1G -rw-rw-r-- 1 user user 1073741824 Mar 3 16:03 1G
@@ -502,8 +526,6 @@ If the file has no metadata it will be returned as `{}` and if there
is an error reading the metadata the error will be returned as is an error reading the metadata the error will be returned as
`{"error":"error string"}`. `{"error":"error string"}`.
``` ```
rclone serve dlna remote:path [flags] rclone serve dlna remote:path [flags]
``` ```
@@ -558,7 +580,7 @@ See the [global flags page](/flags/) for global options not listed here.
Flags for filtering directory listings Flags for filtering directory listings
``` ```text
--delete-excluded Delete files on dest excluded from sync --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern --exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin) --exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
@@ -586,5 +608,10 @@ Flags for filtering directory listings
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone serve](/commands/rclone_serve/) - Serve a remote over a protocol. * [rclone serve](/commands/rclone_serve/) - Serve a remote over a protocol.
<!-- markdownlint-restore -->

View File

@@ -20,7 +20,8 @@ docker daemon and runs the corresponding code when necessary.
Docker plugins can run as a managed plugin under control of the docker daemon 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 or as an independent native service. For testing, you can just run it directly
from the command line, for example: from the command line, for example:
```
```sh
sudo rclone serve docker --base-dir /tmp/rclone-volumes --socket-addr localhost:8787 -vv sudo rclone serve docker --base-dir /tmp/rclone-volumes --socket-addr localhost:8787 -vv
``` ```
@@ -70,8 +71,10 @@ directory should be considered up to date and not refreshed from the
backend. Changes made through the VFS will appear immediately or backend. Changes made through the VFS will appear immediately or
invalidate the cache. invalidate the cache.
```text
--dir-cache-time duration Time to cache directory entries for (default 5m0s) --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) --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 However, changes made directly on the cloud storage by the web
interface or a different copy of rclone will only be picked up once interface or a different copy of rclone will only be picked up once
@@ -83,16 +86,22 @@ You can send a `SIGHUP` signal to rclone for it to flush all
directory caches, regardless of how old they are. Assuming only one directory caches, regardless of how old they are. Assuming only one
rclone instance is running, you can reset the cache like this: rclone instance is running, you can reset the cache like this:
kill -SIGHUP $(pidof rclone) ```sh
kill -SIGHUP $(pidof rclone)
```
If you configure rclone with a [remote control](/rc) then you can use If you configure rclone with a [remote control](/rc) then you can use
rclone rc to flush the whole directory cache: rclone rc to flush the whole directory cache:
rclone rc vfs/forget ```sh
rclone rc vfs/forget
```
Or individual files or directories: Or individual files or directories:
rclone rc vfs/forget file=path/to/file dir=path/to/dir ```sh
rclone rc vfs/forget file=path/to/file dir=path/to/dir
```
## VFS File Buffering ## VFS File Buffering
@@ -123,6 +132,7 @@ write simultaneously to a file. See below for more details.
Note that the VFS cache is separate from the cache backend and you may Note that the VFS cache is separate from the cache backend and you may
find that you need one or the other or both. find that you need one or the other or both.
```text
--cache-dir string Directory rclone will use for caching. --cache-dir string Directory rclone will use for caching.
--vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off) --vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
--vfs-cache-max-age duration Max time since last access of objects in the cache (default 1h0m0s) --vfs-cache-max-age duration Max time since last access of objects in the cache (default 1h0m0s)
@@ -130,6 +140,7 @@ find that you need one or the other or both.
--vfs-cache-min-free-space SizeSuffix Target minimum free space on the disk containing the cache (default off) --vfs-cache-min-free-space SizeSuffix Target minimum free space on the disk containing the cache (default off)
--vfs-cache-poll-interval duration Interval to poll the cache for stale objects (default 1m0s) --vfs-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) --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 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 files are stored in the user cache file area which is OS dependent but
@@ -177,13 +188,13 @@ directly to the remote without caching anything on disk.
This will mean some operations are not possible This will mean some operations are not possible
* Files can't be opened for both read AND write - Files can't be opened for both read AND write
* Files opened for write can't be seeked - Files opened for write can't be seeked
* Existing files opened for write must have O_TRUNC set - 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 read with O_TRUNC will be opened write only
* Files open for write only will behave as if O_TRUNC was supplied - Files open for write only will behave as if O_TRUNC was supplied
* Open modes O_APPEND, O_TRUNC are ignored - Open modes O_APPEND, O_TRUNC are ignored
* If an upload fails it can't be retried - If an upload fails it can't be retried
### --vfs-cache-mode minimal ### --vfs-cache-mode minimal
@@ -193,10 +204,10 @@ write will be a lot more compatible, but uses the minimal disk space.
These operations are not possible These operations are not possible
* Files opened for write only can't be seeked - Files opened for write only can't be seeked
* Existing files opened for write must have O_TRUNC set - Existing files opened for write must have O_TRUNC set
* Files opened for write only will ignore O_APPEND, O_TRUNC - Files opened for write only will ignore O_APPEND, O_TRUNC
* If an upload fails it can't be retried - If an upload fails it can't be retried
### --vfs-cache-mode writes ### --vfs-cache-mode writes
@@ -279,9 +290,11 @@ read, at the cost of an increased number of requests.
These flags control the chunking: These flags control the chunking:
```text
--vfs-read-chunk-size SizeSuffix Read the source objects in chunks (default 128M) --vfs-read-chunk-size SizeSuffix Read the source objects in chunks (default 128M)
--vfs-read-chunk-size-limit SizeSuffix Max chunk doubling size (default off) --vfs-read-chunk-size-limit SizeSuffix Max chunk doubling size (default off)
--vfs-read-chunk-streams int The number of parallel streams to read at once --vfs-read-chunk-streams int The number of parallel streams to read at once
```
The chunking behaves differently depending on the `--vfs-read-chunk-streams` parameter. The chunking behaves differently depending on the `--vfs-read-chunk-streams` parameter.
@@ -295,9 +308,9 @@ value is "off", which is the default, the limit is disabled and the chunk size
will grow indefinitely. will grow indefinitely.
With `--vfs-read-chunk-size 100M` and `--vfs-read-chunk-size-limit 0` 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. the following parts will be downloaded: 0-100M, 100M-200M, 200M-300M, 300M-400M
When `--vfs-read-chunk-size-limit 500M` is specified, the result would be and so on. When `--vfs-read-chunk-size-limit 500M` is specified, the result would
0-100M, 100M-300M, 300M-700M, 700M-1200M, 1200M-1700M and so on. 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. Setting `--vfs-read-chunk-size` to `0` or "off" disables chunked reading.
@@ -335,32 +348,41 @@ In particular S3 and Swift benefit hugely from the `--no-modtime` flag
(or use `--use-server-modtime` for a slightly different effect) as each (or use `--use-server-modtime` for a slightly different effect) as each
read of the modification time takes a transaction. read of the modification time takes a transaction.
```text
--no-checksum Don't compare checksums on up/download. --no-checksum Don't compare checksums on up/download.
--no-modtime Don't read/write the modification time (can speed things up). --no-modtime Don't read/write the modification time (can speed things up).
--no-seek Don't allow seeking in files. --no-seek Don't allow seeking in files.
--read-only Only allow read-only access. --read-only Only allow read-only access.
```
Sometimes rclone is delivered reads or writes out of order. Rather 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 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 write to come in. These flags only come into effect when not using an
on disk cache file. on disk cache file.
```text
--vfs-read-wait duration Time to wait for in-sequence read before seeking (default 20ms) --vfs-read-wait duration Time to wait for in-sequence read before seeking (default 20ms)
--vfs-write-wait duration Time to wait for in-sequence write before giving error (default 1s) --vfs-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), 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 the global flag `--transfers` can be set to adjust the number of parallel uploads
modified files from the cache (the related global flag `--checkers` has no effect on the VFS). of modified files from the cache (the related global flag `--checkers` has no
effect on the VFS).
```text
--transfers int Number of file transfers to run in parallel (default 4) --transfers int Number of file transfers to run in parallel (default 4)
```
## Symlinks ## Symlinks
By default the VFS does not support symlinks. However this may be By default the VFS does not support symlinks. However this may be
enabled with either of the following flags: enabled with either of the following flags:
```text
--links Translate symlinks to/from regular files with a '.rclonelink' extension. --links Translate symlinks to/from regular files with a '.rclonelink' extension.
--vfs-links Translate symlinks to/from regular files with a '.rclonelink' extension for the VFS --vfs-links Translate symlinks to/from regular files with a '.rclonelink' extension for the VFS
```
As most cloud storage systems do not support symlinks directly, rclone As most cloud storage systems do not support symlinks directly, rclone
stores the symlink as a normal file with a special extension. So a stores the symlink as a normal file with a special extension. So a
@@ -372,7 +394,8 @@ Note that `--links` enables symlink translation globally in rclone -
this includes any backend which supports the concept (for example the this includes any backend which supports the concept (for example the
local backend). `--vfs-links` just enables it for the VFS layer. local backend). `--vfs-links` just enables it for the VFS layer.
This scheme is compatible with that used by the [local backend with the --local-links flag](/local/#symlinks-junction-points). This scheme is compatible with that used by the
[local backend with the --local-links flag](/local/#symlinks-junction-points).
The `--vfs-links` flag has been designed for `rclone mount`, `rclone The `--vfs-links` flag has been designed for `rclone mount`, `rclone
nfsmount` and `rclone serve nfs`. nfsmount` and `rclone serve nfs`.
@@ -382,7 +405,7 @@ It hasn't been tested with the other `rclone serve` commands yet.
A limitation of the current implementation is that it expects the A limitation of the current implementation is that it expects the
caller to resolve sub-symlinks. For example given this directory tree caller to resolve sub-symlinks. For example given this directory tree
``` ```text
. .
├── dir ├── dir
│   └── file.txt │   └── file.txt
@@ -460,7 +483,9 @@ sync`.
This flag allows you to manually set the statistics about the filing system. This flag allows you to manually set the statistics about the filing system.
It can be useful when those statistics cannot be read correctly automatically. It can be useful when those statistics cannot be read correctly automatically.
```text
--vfs-disk-space-total-size Manually set the total disk space size (example: 256G, default: -1) --vfs-disk-space-total-size Manually set the total disk space size (example: 256G, default: -1)
```
## Alternate report of used bytes ## Alternate report of used bytes
@@ -471,7 +496,7 @@ With this flag set, instead of relying on the backend to report this
information, rclone will scan the whole remote similar to `rclone size` information, rclone will scan the whole remote similar to `rclone size`
and compute the total used space itself. and compute the total used space itself.
_WARNING._ Contrary to `rclone size`, this flag ignores filters so that the **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 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. calls resulting in extra charges. Use it as a last resort and only with caching.
@@ -489,7 +514,7 @@ Note that some backends won't create metadata unless you pass in the
For example, using `rclone mount` with `--metadata --vfs-metadata-extension .metadata` For example, using `rclone mount` with `--metadata --vfs-metadata-extension .metadata`
we get we get
``` ```sh
$ ls -l /mnt/ $ ls -l /mnt/
total 1048577 total 1048577
-rw-rw-r-- 1 user user 1073741824 Mar 3 16:03 1G -rw-rw-r-- 1 user user 1073741824 Mar 3 16:03 1G
@@ -514,8 +539,6 @@ If the file has no metadata it will be returned as `{}` and if there
is an error reading the metadata the error will be returned as is an error reading the metadata the error will be returned as
`{"error":"error string"}`. `{"error":"error string"}`.
``` ```
rclone serve docker [flags] rclone serve docker [flags]
``` ```
@@ -591,7 +614,7 @@ See the [global flags page](/flags/) for global options not listed here.
Flags for filtering directory listings Flags for filtering directory listings
``` ```text
--delete-excluded Delete files on dest excluded from sync --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern --exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin) --exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
@@ -619,5 +642,10 @@ Flags for filtering directory listings
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone serve](/commands/rclone_serve/) - Serve a remote over a protocol. * [rclone serve](/commands/rclone_serve/) - Serve a remote over a protocol.
<!-- markdownlint-restore -->

View File

@@ -51,8 +51,10 @@ directory should be considered up to date and not refreshed from the
backend. Changes made through the VFS will appear immediately or backend. Changes made through the VFS will appear immediately or
invalidate the cache. invalidate the cache.
```text
--dir-cache-time duration Time to cache directory entries for (default 5m0s) --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) --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 However, changes made directly on the cloud storage by the web
interface or a different copy of rclone will only be picked up once interface or a different copy of rclone will only be picked up once
@@ -64,16 +66,22 @@ You can send a `SIGHUP` signal to rclone for it to flush all
directory caches, regardless of how old they are. Assuming only one directory caches, regardless of how old they are. Assuming only one
rclone instance is running, you can reset the cache like this: rclone instance is running, you can reset the cache like this:
kill -SIGHUP $(pidof rclone) ```sh
kill -SIGHUP $(pidof rclone)
```
If you configure rclone with a [remote control](/rc) then you can use If you configure rclone with a [remote control](/rc) then you can use
rclone rc to flush the whole directory cache: rclone rc to flush the whole directory cache:
rclone rc vfs/forget ```sh
rclone rc vfs/forget
```
Or individual files or directories: Or individual files or directories:
rclone rc vfs/forget file=path/to/file dir=path/to/dir ```sh
rclone rc vfs/forget file=path/to/file dir=path/to/dir
```
## VFS File Buffering ## VFS File Buffering
@@ -104,6 +112,7 @@ write simultaneously to a file. See below for more details.
Note that the VFS cache is separate from the cache backend and you may Note that the VFS cache is separate from the cache backend and you may
find that you need one or the other or both. find that you need one or the other or both.
```text
--cache-dir string Directory rclone will use for caching. --cache-dir string Directory rclone will use for caching.
--vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off) --vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
--vfs-cache-max-age duration Max time since last access of objects in the cache (default 1h0m0s) --vfs-cache-max-age duration Max time since last access of objects in the cache (default 1h0m0s)
@@ -111,6 +120,7 @@ find that you need one or the other or both.
--vfs-cache-min-free-space SizeSuffix Target minimum free space on the disk containing the cache (default off) --vfs-cache-min-free-space SizeSuffix Target minimum free space on the disk containing the cache (default off)
--vfs-cache-poll-interval duration Interval to poll the cache for stale objects (default 1m0s) --vfs-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) --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 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 files are stored in the user cache file area which is OS dependent but
@@ -158,13 +168,13 @@ directly to the remote without caching anything on disk.
This will mean some operations are not possible This will mean some operations are not possible
* Files can't be opened for both read AND write - Files can't be opened for both read AND write
* Files opened for write can't be seeked - Files opened for write can't be seeked
* Existing files opened for write must have O_TRUNC set - 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 read with O_TRUNC will be opened write only
* Files open for write only will behave as if O_TRUNC was supplied - Files open for write only will behave as if O_TRUNC was supplied
* Open modes O_APPEND, O_TRUNC are ignored - Open modes O_APPEND, O_TRUNC are ignored
* If an upload fails it can't be retried - If an upload fails it can't be retried
### --vfs-cache-mode minimal ### --vfs-cache-mode minimal
@@ -174,10 +184,10 @@ write will be a lot more compatible, but uses the minimal disk space.
These operations are not possible These operations are not possible
* Files opened for write only can't be seeked - Files opened for write only can't be seeked
* Existing files opened for write must have O_TRUNC set - Existing files opened for write must have O_TRUNC set
* Files opened for write only will ignore O_APPEND, O_TRUNC - Files opened for write only will ignore O_APPEND, O_TRUNC
* If an upload fails it can't be retried - If an upload fails it can't be retried
### --vfs-cache-mode writes ### --vfs-cache-mode writes
@@ -260,9 +270,11 @@ read, at the cost of an increased number of requests.
These flags control the chunking: These flags control the chunking:
```text
--vfs-read-chunk-size SizeSuffix Read the source objects in chunks (default 128M) --vfs-read-chunk-size SizeSuffix Read the source objects in chunks (default 128M)
--vfs-read-chunk-size-limit SizeSuffix Max chunk doubling size (default off) --vfs-read-chunk-size-limit SizeSuffix Max chunk doubling size (default off)
--vfs-read-chunk-streams int The number of parallel streams to read at once --vfs-read-chunk-streams int The number of parallel streams to read at once
```
The chunking behaves differently depending on the `--vfs-read-chunk-streams` parameter. The chunking behaves differently depending on the `--vfs-read-chunk-streams` parameter.
@@ -276,9 +288,9 @@ value is "off", which is the default, the limit is disabled and the chunk size
will grow indefinitely. will grow indefinitely.
With `--vfs-read-chunk-size 100M` and `--vfs-read-chunk-size-limit 0` 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. the following parts will be downloaded: 0-100M, 100M-200M, 200M-300M, 300M-400M
When `--vfs-read-chunk-size-limit 500M` is specified, the result would be and so on. When `--vfs-read-chunk-size-limit 500M` is specified, the result would
0-100M, 100M-300M, 300M-700M, 700M-1200M, 1200M-1700M and so on. 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. Setting `--vfs-read-chunk-size` to `0` or "off" disables chunked reading.
@@ -316,32 +328,41 @@ In particular S3 and Swift benefit hugely from the `--no-modtime` flag
(or use `--use-server-modtime` for a slightly different effect) as each (or use `--use-server-modtime` for a slightly different effect) as each
read of the modification time takes a transaction. read of the modification time takes a transaction.
```text
--no-checksum Don't compare checksums on up/download. --no-checksum Don't compare checksums on up/download.
--no-modtime Don't read/write the modification time (can speed things up). --no-modtime Don't read/write the modification time (can speed things up).
--no-seek Don't allow seeking in files. --no-seek Don't allow seeking in files.
--read-only Only allow read-only access. --read-only Only allow read-only access.
```
Sometimes rclone is delivered reads or writes out of order. Rather 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 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 write to come in. These flags only come into effect when not using an
on disk cache file. on disk cache file.
```text
--vfs-read-wait duration Time to wait for in-sequence read before seeking (default 20ms) --vfs-read-wait duration Time to wait for in-sequence read before seeking (default 20ms)
--vfs-write-wait duration Time to wait for in-sequence write before giving error (default 1s) --vfs-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), 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 the global flag `--transfers` can be set to adjust the number of parallel uploads
modified files from the cache (the related global flag `--checkers` has no effect on the VFS). of modified files from the cache (the related global flag `--checkers` has no
effect on the VFS).
```text
--transfers int Number of file transfers to run in parallel (default 4) --transfers int Number of file transfers to run in parallel (default 4)
```
## Symlinks ## Symlinks
By default the VFS does not support symlinks. However this may be By default the VFS does not support symlinks. However this may be
enabled with either of the following flags: enabled with either of the following flags:
```text
--links Translate symlinks to/from regular files with a '.rclonelink' extension. --links Translate symlinks to/from regular files with a '.rclonelink' extension.
--vfs-links Translate symlinks to/from regular files with a '.rclonelink' extension for the VFS --vfs-links Translate symlinks to/from regular files with a '.rclonelink' extension for the VFS
```
As most cloud storage systems do not support symlinks directly, rclone As most cloud storage systems do not support symlinks directly, rclone
stores the symlink as a normal file with a special extension. So a stores the symlink as a normal file with a special extension. So a
@@ -353,7 +374,8 @@ Note that `--links` enables symlink translation globally in rclone -
this includes any backend which supports the concept (for example the this includes any backend which supports the concept (for example the
local backend). `--vfs-links` just enables it for the VFS layer. local backend). `--vfs-links` just enables it for the VFS layer.
This scheme is compatible with that used by the [local backend with the --local-links flag](/local/#symlinks-junction-points). This scheme is compatible with that used by the
[local backend with the --local-links flag](/local/#symlinks-junction-points).
The `--vfs-links` flag has been designed for `rclone mount`, `rclone The `--vfs-links` flag has been designed for `rclone mount`, `rclone
nfsmount` and `rclone serve nfs`. nfsmount` and `rclone serve nfs`.
@@ -363,7 +385,7 @@ It hasn't been tested with the other `rclone serve` commands yet.
A limitation of the current implementation is that it expects the A limitation of the current implementation is that it expects the
caller to resolve sub-symlinks. For example given this directory tree caller to resolve sub-symlinks. For example given this directory tree
``` ```text
. .
├── dir ├── dir
│   └── file.txt │   └── file.txt
@@ -441,7 +463,9 @@ sync`.
This flag allows you to manually set the statistics about the filing system. This flag allows you to manually set the statistics about the filing system.
It can be useful when those statistics cannot be read correctly automatically. It can be useful when those statistics cannot be read correctly automatically.
```text
--vfs-disk-space-total-size Manually set the total disk space size (example: 256G, default: -1) --vfs-disk-space-total-size Manually set the total disk space size (example: 256G, default: -1)
```
## Alternate report of used bytes ## Alternate report of used bytes
@@ -452,7 +476,7 @@ With this flag set, instead of relying on the backend to report this
information, rclone will scan the whole remote similar to `rclone size` information, rclone will scan the whole remote similar to `rclone size`
and compute the total used space itself. and compute the total used space itself.
_WARNING._ Contrary to `rclone size`, this flag ignores filters so that the **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 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. calls resulting in extra charges. Use it as a last resort and only with caching.
@@ -470,7 +494,7 @@ Note that some backends won't create metadata unless you pass in the
For example, using `rclone mount` with `--metadata --vfs-metadata-extension .metadata` For example, using `rclone mount` with `--metadata --vfs-metadata-extension .metadata`
we get we get
``` ```sh
$ ls -l /mnt/ $ ls -l /mnt/
total 1048577 total 1048577
-rw-rw-r-- 1 user user 1073741824 Mar 3 16:03 1G -rw-rw-r-- 1 user user 1073741824 Mar 3 16:03 1G
@@ -518,41 +542,43 @@ options - it is the job of the proxy program to make a complete
config. config.
This config generated must have this extra parameter This config generated must have this extra parameter
- `_root` - root to use for the backend - `_root` - root to use for the backend
And it may have this parameter And it may have this parameter
- `_obscure` - comma separated strings for parameters to obscure - `_obscure` - comma separated strings for parameters to obscure
If password authentication was used by the client, input to the proxy If password authentication was used by the client, input to the proxy
process (on STDIN) would look similar to this: process (on STDIN) would look similar to this:
``` ```json
{ {
"user": "me", "user": "me",
"pass": "mypassword" "pass": "mypassword"
} }
``` ```
If public-key authentication was used by the client, input to the If public-key authentication was used by the client, input to the
proxy process (on STDIN) would look similar to this: proxy process (on STDIN) would look similar to this:
``` ```json
{ {
"user": "me", "user": "me",
"public_key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQDuwESFdAe14hVS6omeyX7edc...JQdf" "public_key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQDuwESFdAe14hVS6omeyX7edc...JQdf"
} }
``` ```
And as an example return this on STDOUT And as an example return this on STDOUT
``` ```json
{ {
"type": "sftp", "type": "sftp",
"_root": "", "_root": "",
"_obscure": "pass", "_obscure": "pass",
"user": "me", "user": "me",
"pass": "mypassword", "pass": "mypassword",
"host": "sftp.example.com" "host": "sftp.example.com"
} }
``` ```
@@ -574,9 +600,7 @@ password or public-key is changed the cache will need to expire (which takes 5 m
before it takes effect. before it takes effect.
This can be used to build general purpose proxies to any kind of This can be used to build general purpose proxies to any kind of
backend that rclone supports. backend that rclone supports.
``` ```
rclone serve ftp remote:path [flags] rclone serve ftp remote:path [flags]
@@ -635,7 +659,7 @@ See the [global flags page](/flags/) for global options not listed here.
Flags for filtering directory listings Flags for filtering directory listings
``` ```text
--delete-excluded Delete files on dest excluded from sync --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern --exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin) --exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
@@ -663,5 +687,10 @@ Flags for filtering directory listings
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone serve](/commands/rclone_serve/) - Serve a remote over a protocol. * [rclone serve](/commands/rclone_serve/) - Serve a remote over a protocol.
<!-- markdownlint-restore -->

View File

@@ -78,13 +78,16 @@ by `--addr`).
This allows rclone to be a socket-activated service. This allows rclone to be a socket-activated service.
It can be configured with .socket and .service unit files as described in It can be configured with .socket and .service unit files as described in
https://www.freedesktop.org/software/systemd/man/latest/systemd.socket.html <https://www.freedesktop.org/software/systemd/man/latest/systemd.socket.html>.
Socket activation can be tested ad-hoc with the `systemd-socket-activate`command Socket activation can be tested ad-hoc with the `systemd-socket-activate`command
systemd-socket-activate -l 8000 -- rclone serve ```sh
systemd-socket-activate -l 8000 -- rclone serve
```
This will socket-activate rclone on the first connection to port 8000 over TCP. This will socket-activate rclone on the first connection to port 8000 over TCP.
### Template ### Template
`--template` allows a user to specify a custom markup template for HTTP `--template` allows a user to specify a custom markup template for HTTP
@@ -110,9 +113,9 @@ to be used within the template to server pages:
|-- .Size | Size in Bytes of the entry. | |-- .Size | Size in Bytes of the entry. |
|-- .ModTime | The UTC timestamp of an entry. | |-- .ModTime | The UTC timestamp of an entry. |
The server also makes the following functions available so that they can be used within the The server also makes the following functions available so that they can be used
template. These functions help extend the options for dynamic rendering of HTML. They can within the template. These functions help extend the options for dynamic
be used to render HTML based on specific conditions. rendering of HTML. They can be used to render HTML based on specific conditions.
| Function | Description | | Function | Description |
| :---------- | :---------- | | :---------- | :---------- |
@@ -130,7 +133,8 @@ set a single username and password with the `--user` and `--pass` flags.
Alternatively, you can have the reverse proxy manage authentication and use the Alternatively, you can have the reverse proxy manage authentication and use the
username provided in the configured header with `--user-from-header` (e.g., `----user-from-header=x-remote-user`). username provided in the configured header with `--user-from-header` (e.g., `----user-from-header=x-remote-user`).
Ensure the proxy is trusted and headers cannot be spoofed, as misconfiguration may lead to unauthorized access. Ensure the proxy is trusted and headers cannot be spoofed, as misconfiguration
may lead to unauthorized access.
If either of the above authentication methods is not configured and client If either of the above authentication methods is not configured and client
certificates are required by the `--client-ca` flag passed to the server, the certificates are required by the `--client-ca` flag passed to the server, the
@@ -142,9 +146,11 @@ authentication. Bcrypt is recommended.
To create an htpasswd file: To create an htpasswd file:
touch htpasswd ```sh
htpasswd -B htpasswd user touch htpasswd
htpasswd -B htpasswd anotherUser htpasswd -B htpasswd user
htpasswd -B htpasswd anotherUser
```
The password file can be updated while rclone is running. The password file can be updated while rclone is running.
@@ -173,8 +179,10 @@ directory should be considered up to date and not refreshed from the
backend. Changes made through the VFS will appear immediately or backend. Changes made through the VFS will appear immediately or
invalidate the cache. invalidate the cache.
```text
--dir-cache-time duration Time to cache directory entries for (default 5m0s) --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) --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 However, changes made directly on the cloud storage by the web
interface or a different copy of rclone will only be picked up once interface or a different copy of rclone will only be picked up once
@@ -186,16 +194,22 @@ You can send a `SIGHUP` signal to rclone for it to flush all
directory caches, regardless of how old they are. Assuming only one directory caches, regardless of how old they are. Assuming only one
rclone instance is running, you can reset the cache like this: rclone instance is running, you can reset the cache like this:
kill -SIGHUP $(pidof rclone) ```sh
kill -SIGHUP $(pidof rclone)
```
If you configure rclone with a [remote control](/rc) then you can use If you configure rclone with a [remote control](/rc) then you can use
rclone rc to flush the whole directory cache: rclone rc to flush the whole directory cache:
rclone rc vfs/forget ```sh
rclone rc vfs/forget
```
Or individual files or directories: Or individual files or directories:
rclone rc vfs/forget file=path/to/file dir=path/to/dir ```sh
rclone rc vfs/forget file=path/to/file dir=path/to/dir
```
## VFS File Buffering ## VFS File Buffering
@@ -226,6 +240,7 @@ write simultaneously to a file. See below for more details.
Note that the VFS cache is separate from the cache backend and you may Note that the VFS cache is separate from the cache backend and you may
find that you need one or the other or both. find that you need one or the other or both.
```text
--cache-dir string Directory rclone will use for caching. --cache-dir string Directory rclone will use for caching.
--vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off) --vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
--vfs-cache-max-age duration Max time since last access of objects in the cache (default 1h0m0s) --vfs-cache-max-age duration Max time since last access of objects in the cache (default 1h0m0s)
@@ -233,6 +248,7 @@ find that you need one or the other or both.
--vfs-cache-min-free-space SizeSuffix Target minimum free space on the disk containing the cache (default off) --vfs-cache-min-free-space SizeSuffix Target minimum free space on the disk containing the cache (default off)
--vfs-cache-poll-interval duration Interval to poll the cache for stale objects (default 1m0s) --vfs-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) --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 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 files are stored in the user cache file area which is OS dependent but
@@ -280,13 +296,13 @@ directly to the remote without caching anything on disk.
This will mean some operations are not possible This will mean some operations are not possible
* Files can't be opened for both read AND write - Files can't be opened for both read AND write
* Files opened for write can't be seeked - Files opened for write can't be seeked
* Existing files opened for write must have O_TRUNC set - 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 read with O_TRUNC will be opened write only
* Files open for write only will behave as if O_TRUNC was supplied - Files open for write only will behave as if O_TRUNC was supplied
* Open modes O_APPEND, O_TRUNC are ignored - Open modes O_APPEND, O_TRUNC are ignored
* If an upload fails it can't be retried - If an upload fails it can't be retried
### --vfs-cache-mode minimal ### --vfs-cache-mode minimal
@@ -296,10 +312,10 @@ write will be a lot more compatible, but uses the minimal disk space.
These operations are not possible These operations are not possible
* Files opened for write only can't be seeked - Files opened for write only can't be seeked
* Existing files opened for write must have O_TRUNC set - Existing files opened for write must have O_TRUNC set
* Files opened for write only will ignore O_APPEND, O_TRUNC - Files opened for write only will ignore O_APPEND, O_TRUNC
* If an upload fails it can't be retried - If an upload fails it can't be retried
### --vfs-cache-mode writes ### --vfs-cache-mode writes
@@ -382,9 +398,11 @@ read, at the cost of an increased number of requests.
These flags control the chunking: These flags control the chunking:
```text
--vfs-read-chunk-size SizeSuffix Read the source objects in chunks (default 128M) --vfs-read-chunk-size SizeSuffix Read the source objects in chunks (default 128M)
--vfs-read-chunk-size-limit SizeSuffix Max chunk doubling size (default off) --vfs-read-chunk-size-limit SizeSuffix Max chunk doubling size (default off)
--vfs-read-chunk-streams int The number of parallel streams to read at once --vfs-read-chunk-streams int The number of parallel streams to read at once
```
The chunking behaves differently depending on the `--vfs-read-chunk-streams` parameter. The chunking behaves differently depending on the `--vfs-read-chunk-streams` parameter.
@@ -398,9 +416,9 @@ value is "off", which is the default, the limit is disabled and the chunk size
will grow indefinitely. will grow indefinitely.
With `--vfs-read-chunk-size 100M` and `--vfs-read-chunk-size-limit 0` 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. the following parts will be downloaded: 0-100M, 100M-200M, 200M-300M, 300M-400M
When `--vfs-read-chunk-size-limit 500M` is specified, the result would be and so on. When `--vfs-read-chunk-size-limit 500M` is specified, the result would
0-100M, 100M-300M, 300M-700M, 700M-1200M, 1200M-1700M and so on. 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. Setting `--vfs-read-chunk-size` to `0` or "off" disables chunked reading.
@@ -438,32 +456,41 @@ In particular S3 and Swift benefit hugely from the `--no-modtime` flag
(or use `--use-server-modtime` for a slightly different effect) as each (or use `--use-server-modtime` for a slightly different effect) as each
read of the modification time takes a transaction. read of the modification time takes a transaction.
```text
--no-checksum Don't compare checksums on up/download. --no-checksum Don't compare checksums on up/download.
--no-modtime Don't read/write the modification time (can speed things up). --no-modtime Don't read/write the modification time (can speed things up).
--no-seek Don't allow seeking in files. --no-seek Don't allow seeking in files.
--read-only Only allow read-only access. --read-only Only allow read-only access.
```
Sometimes rclone is delivered reads or writes out of order. Rather 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 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 write to come in. These flags only come into effect when not using an
on disk cache file. on disk cache file.
```text
--vfs-read-wait duration Time to wait for in-sequence read before seeking (default 20ms) --vfs-read-wait duration Time to wait for in-sequence read before seeking (default 20ms)
--vfs-write-wait duration Time to wait for in-sequence write before giving error (default 1s) --vfs-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), 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 the global flag `--transfers` can be set to adjust the number of parallel uploads
modified files from the cache (the related global flag `--checkers` has no effect on the VFS). of modified files from the cache (the related global flag `--checkers` has no
effect on the VFS).
```text
--transfers int Number of file transfers to run in parallel (default 4) --transfers int Number of file transfers to run in parallel (default 4)
```
## Symlinks ## Symlinks
By default the VFS does not support symlinks. However this may be By default the VFS does not support symlinks. However this may be
enabled with either of the following flags: enabled with either of the following flags:
```text
--links Translate symlinks to/from regular files with a '.rclonelink' extension. --links Translate symlinks to/from regular files with a '.rclonelink' extension.
--vfs-links Translate symlinks to/from regular files with a '.rclonelink' extension for the VFS --vfs-links Translate symlinks to/from regular files with a '.rclonelink' extension for the VFS
```
As most cloud storage systems do not support symlinks directly, rclone As most cloud storage systems do not support symlinks directly, rclone
stores the symlink as a normal file with a special extension. So a stores the symlink as a normal file with a special extension. So a
@@ -475,7 +502,8 @@ Note that `--links` enables symlink translation globally in rclone -
this includes any backend which supports the concept (for example the this includes any backend which supports the concept (for example the
local backend). `--vfs-links` just enables it for the VFS layer. local backend). `--vfs-links` just enables it for the VFS layer.
This scheme is compatible with that used by the [local backend with the --local-links flag](/local/#symlinks-junction-points). This scheme is compatible with that used by the
[local backend with the --local-links flag](/local/#symlinks-junction-points).
The `--vfs-links` flag has been designed for `rclone mount`, `rclone The `--vfs-links` flag has been designed for `rclone mount`, `rclone
nfsmount` and `rclone serve nfs`. nfsmount` and `rclone serve nfs`.
@@ -485,7 +513,7 @@ It hasn't been tested with the other `rclone serve` commands yet.
A limitation of the current implementation is that it expects the A limitation of the current implementation is that it expects the
caller to resolve sub-symlinks. For example given this directory tree caller to resolve sub-symlinks. For example given this directory tree
``` ```text
. .
├── dir ├── dir
│   └── file.txt │   └── file.txt
@@ -563,7 +591,9 @@ sync`.
This flag allows you to manually set the statistics about the filing system. This flag allows you to manually set the statistics about the filing system.
It can be useful when those statistics cannot be read correctly automatically. It can be useful when those statistics cannot be read correctly automatically.
```text
--vfs-disk-space-total-size Manually set the total disk space size (example: 256G, default: -1) --vfs-disk-space-total-size Manually set the total disk space size (example: 256G, default: -1)
```
## Alternate report of used bytes ## Alternate report of used bytes
@@ -574,7 +604,7 @@ With this flag set, instead of relying on the backend to report this
information, rclone will scan the whole remote similar to `rclone size` information, rclone will scan the whole remote similar to `rclone size`
and compute the total used space itself. and compute the total used space itself.
_WARNING._ Contrary to `rclone size`, this flag ignores filters so that the **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 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. calls resulting in extra charges. Use it as a last resort and only with caching.
@@ -592,7 +622,7 @@ Note that some backends won't create metadata unless you pass in the
For example, using `rclone mount` with `--metadata --vfs-metadata-extension .metadata` For example, using `rclone mount` with `--metadata --vfs-metadata-extension .metadata`
we get we get
``` ```sh
$ ls -l /mnt/ $ ls -l /mnt/
total 1048577 total 1048577
-rw-rw-r-- 1 user user 1073741824 Mar 3 16:03 1G -rw-rw-r-- 1 user user 1073741824 Mar 3 16:03 1G
@@ -640,41 +670,43 @@ options - it is the job of the proxy program to make a complete
config. config.
This config generated must have this extra parameter This config generated must have this extra parameter
- `_root` - root to use for the backend - `_root` - root to use for the backend
And it may have this parameter And it may have this parameter
- `_obscure` - comma separated strings for parameters to obscure - `_obscure` - comma separated strings for parameters to obscure
If password authentication was used by the client, input to the proxy If password authentication was used by the client, input to the proxy
process (on STDIN) would look similar to this: process (on STDIN) would look similar to this:
``` ```json
{ {
"user": "me", "user": "me",
"pass": "mypassword" "pass": "mypassword"
} }
``` ```
If public-key authentication was used by the client, input to the If public-key authentication was used by the client, input to the
proxy process (on STDIN) would look similar to this: proxy process (on STDIN) would look similar to this:
``` ```json
{ {
"user": "me", "user": "me",
"public_key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQDuwESFdAe14hVS6omeyX7edc...JQdf" "public_key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQDuwESFdAe14hVS6omeyX7edc...JQdf"
} }
``` ```
And as an example return this on STDOUT And as an example return this on STDOUT
``` ```json
{ {
"type": "sftp", "type": "sftp",
"_root": "", "_root": "",
"_obscure": "pass", "_obscure": "pass",
"user": "me", "user": "me",
"pass": "mypassword", "pass": "mypassword",
"host": "sftp.example.com" "host": "sftp.example.com"
} }
``` ```
@@ -696,9 +728,7 @@ password or public-key is changed the cache will need to expire (which takes 5 m
before it takes effect. before it takes effect.
This can be used to build general purpose proxies to any kind of This can be used to build general purpose proxies to any kind of
backend that rclone supports. backend that rclone supports.
``` ```
rclone serve http remote:path [flags] rclone serve http remote:path [flags]
@@ -767,7 +797,7 @@ See the [global flags page](/flags/) for global options not listed here.
Flags for filtering directory listings Flags for filtering directory listings
``` ```text
--delete-excluded Delete files on dest excluded from sync --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern --exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin) --exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
@@ -795,5 +825,10 @@ Flags for filtering directory listings
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone serve](/commands/rclone_serve/) - Serve a remote over a protocol. * [rclone serve](/commands/rclone_serve/) - Serve a remote over a protocol.
<!-- markdownlint-restore -->

View File

@@ -12,7 +12,7 @@ Serve the remote as an NFS mount
## Synopsis ## Synopsis
Create an NFS server that serves the given remote over the network. Create an NFS server that serves the given remote over the network.
This implements an NFSv3 server to serve any rclone remote via NFS. This implements an NFSv3 server to serve any rclone remote via NFS.
The primary purpose for this command is to enable the [mount The primary purpose for this command is to enable the [mount
@@ -66,12 +66,16 @@ cache.
To serve NFS over the network use following command: To serve NFS over the network use following command:
rclone serve nfs remote: --addr 0.0.0.0:$PORT --vfs-cache-mode=full ```sh
rclone serve nfs remote: --addr 0.0.0.0:$PORT --vfs-cache-mode=full
```
This specifies a port that can be used in the mount command. To mount This specifies a port that can be used in the mount command. To mount
the server under Linux/macOS, use the following command: the server under Linux/macOS, use the following command:
mount -t nfs -o port=$PORT,mountport=$PORT,tcp $HOSTNAME:/ path/to/mountpoint ```sh
mount -t nfs -o port=$PORT,mountport=$PORT,tcp $HOSTNAME:/ path/to/mountpoint
```
Where `$PORT` is the same port number used in the `serve nfs` command Where `$PORT` is the same port number used in the `serve nfs` command
and `$HOSTNAME` is the network address of the machine that `serve nfs` and `$HOSTNAME` is the network address of the machine that `serve nfs`
@@ -106,8 +110,10 @@ directory should be considered up to date and not refreshed from the
backend. Changes made through the VFS will appear immediately or backend. Changes made through the VFS will appear immediately or
invalidate the cache. invalidate the cache.
```text
--dir-cache-time duration Time to cache directory entries for (default 5m0s) --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) --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 However, changes made directly on the cloud storage by the web
interface or a different copy of rclone will only be picked up once interface or a different copy of rclone will only be picked up once
@@ -119,16 +125,22 @@ You can send a `SIGHUP` signal to rclone for it to flush all
directory caches, regardless of how old they are. Assuming only one directory caches, regardless of how old they are. Assuming only one
rclone instance is running, you can reset the cache like this: rclone instance is running, you can reset the cache like this:
kill -SIGHUP $(pidof rclone) ```sh
kill -SIGHUP $(pidof rclone)
```
If you configure rclone with a [remote control](/rc) then you can use If you configure rclone with a [remote control](/rc) then you can use
rclone rc to flush the whole directory cache: rclone rc to flush the whole directory cache:
rclone rc vfs/forget ```sh
rclone rc vfs/forget
```
Or individual files or directories: Or individual files or directories:
rclone rc vfs/forget file=path/to/file dir=path/to/dir ```sh
rclone rc vfs/forget file=path/to/file dir=path/to/dir
```
## VFS File Buffering ## VFS File Buffering
@@ -159,6 +171,7 @@ write simultaneously to a file. See below for more details.
Note that the VFS cache is separate from the cache backend and you may Note that the VFS cache is separate from the cache backend and you may
find that you need one or the other or both. find that you need one or the other or both.
```text
--cache-dir string Directory rclone will use for caching. --cache-dir string Directory rclone will use for caching.
--vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off) --vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
--vfs-cache-max-age duration Max time since last access of objects in the cache (default 1h0m0s) --vfs-cache-max-age duration Max time since last access of objects in the cache (default 1h0m0s)
@@ -166,6 +179,7 @@ find that you need one or the other or both.
--vfs-cache-min-free-space SizeSuffix Target minimum free space on the disk containing the cache (default off) --vfs-cache-min-free-space SizeSuffix Target minimum free space on the disk containing the cache (default off)
--vfs-cache-poll-interval duration Interval to poll the cache for stale objects (default 1m0s) --vfs-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) --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 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 files are stored in the user cache file area which is OS dependent but
@@ -213,13 +227,13 @@ directly to the remote without caching anything on disk.
This will mean some operations are not possible This will mean some operations are not possible
* Files can't be opened for both read AND write - Files can't be opened for both read AND write
* Files opened for write can't be seeked - Files opened for write can't be seeked
* Existing files opened for write must have O_TRUNC set - 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 read with O_TRUNC will be opened write only
* Files open for write only will behave as if O_TRUNC was supplied - Files open for write only will behave as if O_TRUNC was supplied
* Open modes O_APPEND, O_TRUNC are ignored - Open modes O_APPEND, O_TRUNC are ignored
* If an upload fails it can't be retried - If an upload fails it can't be retried
### --vfs-cache-mode minimal ### --vfs-cache-mode minimal
@@ -229,10 +243,10 @@ write will be a lot more compatible, but uses the minimal disk space.
These operations are not possible These operations are not possible
* Files opened for write only can't be seeked - Files opened for write only can't be seeked
* Existing files opened for write must have O_TRUNC set - Existing files opened for write must have O_TRUNC set
* Files opened for write only will ignore O_APPEND, O_TRUNC - Files opened for write only will ignore O_APPEND, O_TRUNC
* If an upload fails it can't be retried - If an upload fails it can't be retried
### --vfs-cache-mode writes ### --vfs-cache-mode writes
@@ -315,9 +329,11 @@ read, at the cost of an increased number of requests.
These flags control the chunking: These flags control the chunking:
```text
--vfs-read-chunk-size SizeSuffix Read the source objects in chunks (default 128M) --vfs-read-chunk-size SizeSuffix Read the source objects in chunks (default 128M)
--vfs-read-chunk-size-limit SizeSuffix Max chunk doubling size (default off) --vfs-read-chunk-size-limit SizeSuffix Max chunk doubling size (default off)
--vfs-read-chunk-streams int The number of parallel streams to read at once --vfs-read-chunk-streams int The number of parallel streams to read at once
```
The chunking behaves differently depending on the `--vfs-read-chunk-streams` parameter. The chunking behaves differently depending on the `--vfs-read-chunk-streams` parameter.
@@ -331,9 +347,9 @@ value is "off", which is the default, the limit is disabled and the chunk size
will grow indefinitely. will grow indefinitely.
With `--vfs-read-chunk-size 100M` and `--vfs-read-chunk-size-limit 0` 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. the following parts will be downloaded: 0-100M, 100M-200M, 200M-300M, 300M-400M
When `--vfs-read-chunk-size-limit 500M` is specified, the result would be and so on. When `--vfs-read-chunk-size-limit 500M` is specified, the result would
0-100M, 100M-300M, 300M-700M, 700M-1200M, 1200M-1700M and so on. 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. Setting `--vfs-read-chunk-size` to `0` or "off" disables chunked reading.
@@ -371,32 +387,41 @@ In particular S3 and Swift benefit hugely from the `--no-modtime` flag
(or use `--use-server-modtime` for a slightly different effect) as each (or use `--use-server-modtime` for a slightly different effect) as each
read of the modification time takes a transaction. read of the modification time takes a transaction.
```text
--no-checksum Don't compare checksums on up/download. --no-checksum Don't compare checksums on up/download.
--no-modtime Don't read/write the modification time (can speed things up). --no-modtime Don't read/write the modification time (can speed things up).
--no-seek Don't allow seeking in files. --no-seek Don't allow seeking in files.
--read-only Only allow read-only access. --read-only Only allow read-only access.
```
Sometimes rclone is delivered reads or writes out of order. Rather 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 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 write to come in. These flags only come into effect when not using an
on disk cache file. on disk cache file.
```text
--vfs-read-wait duration Time to wait for in-sequence read before seeking (default 20ms) --vfs-read-wait duration Time to wait for in-sequence read before seeking (default 20ms)
--vfs-write-wait duration Time to wait for in-sequence write before giving error (default 1s) --vfs-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), 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 the global flag `--transfers` can be set to adjust the number of parallel uploads
modified files from the cache (the related global flag `--checkers` has no effect on the VFS). of modified files from the cache (the related global flag `--checkers` has no
effect on the VFS).
```text
--transfers int Number of file transfers to run in parallel (default 4) --transfers int Number of file transfers to run in parallel (default 4)
```
## Symlinks ## Symlinks
By default the VFS does not support symlinks. However this may be By default the VFS does not support symlinks. However this may be
enabled with either of the following flags: enabled with either of the following flags:
```text
--links Translate symlinks to/from regular files with a '.rclonelink' extension. --links Translate symlinks to/from regular files with a '.rclonelink' extension.
--vfs-links Translate symlinks to/from regular files with a '.rclonelink' extension for the VFS --vfs-links Translate symlinks to/from regular files with a '.rclonelink' extension for the VFS
```
As most cloud storage systems do not support symlinks directly, rclone As most cloud storage systems do not support symlinks directly, rclone
stores the symlink as a normal file with a special extension. So a stores the symlink as a normal file with a special extension. So a
@@ -408,7 +433,8 @@ Note that `--links` enables symlink translation globally in rclone -
this includes any backend which supports the concept (for example the this includes any backend which supports the concept (for example the
local backend). `--vfs-links` just enables it for the VFS layer. local backend). `--vfs-links` just enables it for the VFS layer.
This scheme is compatible with that used by the [local backend with the --local-links flag](/local/#symlinks-junction-points). This scheme is compatible with that used by the
[local backend with the --local-links flag](/local/#symlinks-junction-points).
The `--vfs-links` flag has been designed for `rclone mount`, `rclone The `--vfs-links` flag has been designed for `rclone mount`, `rclone
nfsmount` and `rclone serve nfs`. nfsmount` and `rclone serve nfs`.
@@ -418,7 +444,7 @@ It hasn't been tested with the other `rclone serve` commands yet.
A limitation of the current implementation is that it expects the A limitation of the current implementation is that it expects the
caller to resolve sub-symlinks. For example given this directory tree caller to resolve sub-symlinks. For example given this directory tree
``` ```text
. .
├── dir ├── dir
│   └── file.txt │   └── file.txt
@@ -496,7 +522,9 @@ sync`.
This flag allows you to manually set the statistics about the filing system. This flag allows you to manually set the statistics about the filing system.
It can be useful when those statistics cannot be read correctly automatically. It can be useful when those statistics cannot be read correctly automatically.
```text
--vfs-disk-space-total-size Manually set the total disk space size (example: 256G, default: -1) --vfs-disk-space-total-size Manually set the total disk space size (example: 256G, default: -1)
```
## Alternate report of used bytes ## Alternate report of used bytes
@@ -507,7 +535,7 @@ With this flag set, instead of relying on the backend to report this
information, rclone will scan the whole remote similar to `rclone size` information, rclone will scan the whole remote similar to `rclone size`
and compute the total used space itself. and compute the total used space itself.
_WARNING._ Contrary to `rclone size`, this flag ignores filters so that the **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 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. calls resulting in extra charges. Use it as a last resort and only with caching.
@@ -525,7 +553,7 @@ Note that some backends won't create metadata unless you pass in the
For example, using `rclone mount` with `--metadata --vfs-metadata-extension .metadata` For example, using `rclone mount` with `--metadata --vfs-metadata-extension .metadata`
we get we get
``` ```sh
$ ls -l /mnt/ $ ls -l /mnt/
total 1048577 total 1048577
-rw-rw-r-- 1 user user 1073741824 Mar 3 16:03 1G -rw-rw-r-- 1 user user 1073741824 Mar 3 16:03 1G
@@ -550,8 +578,6 @@ If the file has no metadata it will be returned as `{}` and if there
is an error reading the metadata the error will be returned as is an error reading the metadata the error will be returned as
`{"error":"error string"}`. `{"error":"error string"}`.
``` ```
rclone serve nfs remote:path [flags] rclone serve nfs remote:path [flags]
``` ```
@@ -605,7 +631,7 @@ See the [global flags page](/flags/) for global options not listed here.
Flags for filtering directory listings Flags for filtering directory listings
``` ```text
--delete-excluded Delete files on dest excluded from sync --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern --exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin) --exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
@@ -633,5 +659,10 @@ Flags for filtering directory listings
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone serve](/commands/rclone_serve/) - Serve a remote over a protocol. * [rclone serve](/commands/rclone_serve/) - Serve a remote over a protocol.
<!-- markdownlint-restore -->

View File

@@ -22,7 +22,7 @@ The server will log errors. Use -v to see access logs.
`--bwlimit` will be respected for file transfers. `--bwlimit` will be respected for file transfers.
Use `--stats` to control the stats printing. Use `--stats` to control the stats printing.
## Setting up rclone for use by restic ### ## Setting up rclone for use by restic
First [set up a remote for your chosen cloud provider](/docs/#configure). First [set up a remote for your chosen cloud provider](/docs/#configure).
@@ -33,7 +33,9 @@ following instructions.
Now start the rclone restic server Now start the rclone restic server
rclone serve restic -v remote:backup ```sh
rclone serve restic -v remote:backup
```
Where you can replace "backup" in the above by whatever path in the Where you can replace "backup" in the above by whatever path in the
remote you wish to use. remote you wish to use.
@@ -47,7 +49,7 @@ Adding `--cache-objects=false` will cause rclone to stop caching objects
returned from the List call. Caching is normally desirable as it speeds returned from the List call. Caching is normally desirable as it speeds
up downloading objects, saves transactions and uses very little memory. up downloading objects, saves transactions and uses very little memory.
## Setting up restic to use rclone ### ## Setting up restic to use rclone
Now you can [follow the restic Now you can [follow the restic
instructions](http://restic.readthedocs.io/en/latest/030_preparing_a_new_repo.html#rest-server) instructions](http://restic.readthedocs.io/en/latest/030_preparing_a_new_repo.html#rest-server)
@@ -61,33 +63,38 @@ the URL for the REST server.
For example: For example:
$ export RESTIC_REPOSITORY=rest:http://localhost:8080/ ```sh
$ export RESTIC_PASSWORD=yourpassword $ export RESTIC_REPOSITORY=rest:http://localhost:8080/
$ restic init $ export RESTIC_PASSWORD=yourpassword
created restic backend 8b1a4b56ae at rest:http://localhost:8080/ $ restic init
created restic backend 8b1a4b56ae at rest:http://localhost:8080/
Please note that knowledge of your password is required to access Please note that knowledge of your password is required to access
the repository. Losing your password means that your data is the repository. Losing your password means that your data is
irrecoverably lost. irrecoverably lost.
$ restic backup /path/to/files/to/backup $ restic backup /path/to/files/to/backup
scan [/path/to/files/to/backup] scan [/path/to/files/to/backup]
scanned 189 directories, 312 files in 0:00 scanned 189 directories, 312 files in 0:00
[0:00] 100.00% 38.128 MiB / 38.128 MiB 501 / 501 items 0 errors ETA 0:00 [0:00] 100.00% 38.128 MiB / 38.128 MiB 501 / 501 items 0 errors ETA 0:00
duration: 0:00 duration: 0:00
snapshot 45c8fdd8 saved snapshot 45c8fdd8 saved
### Multiple repositories #### ```
### Multiple repositories
Note that you can use the endpoint to host multiple repositories. Do Note that you can use the endpoint to host multiple repositories. Do
this by adding a directory name or path after the URL. Note that this by adding a directory name or path after the URL. Note that
these **must** end with /. Eg these **must** end with /. Eg
$ export RESTIC_REPOSITORY=rest:http://localhost:8080/user1repo/ ```sh
# backup user1 stuff $ export RESTIC_REPOSITORY=rest:http://localhost:8080/user1repo/
$ export RESTIC_REPOSITORY=rest:http://localhost:8080/user2repo/ # backup user1 stuff
# backup user2 stuff $ export RESTIC_REPOSITORY=rest:http://localhost:8080/user2repo/
# backup user2 stuff
```
### Private repositories #### ### Private repositories
The`--private-repos` flag can be used to limit users to repositories starting The`--private-repos` flag can be used to limit users to repositories starting
with a path of `/<username>/`. with a path of `/<username>/`.
@@ -148,13 +155,16 @@ by `--addr`).
This allows rclone to be a socket-activated service. This allows rclone to be a socket-activated service.
It can be configured with .socket and .service unit files as described in It can be configured with .socket and .service unit files as described in
https://www.freedesktop.org/software/systemd/man/latest/systemd.socket.html <https://www.freedesktop.org/software/systemd/man/latest/systemd.socket.html>.
Socket activation can be tested ad-hoc with the `systemd-socket-activate`command Socket activation can be tested ad-hoc with the `systemd-socket-activate`command
systemd-socket-activate -l 8000 -- rclone serve ```sh
systemd-socket-activate -l 8000 -- rclone serve
```
This will socket-activate rclone on the first connection to port 8000 over TCP. This will socket-activate rclone on the first connection to port 8000 over TCP.
### Authentication ### Authentication
By default this will serve files without needing a login. By default this will serve files without needing a login.
@@ -164,7 +174,8 @@ set a single username and password with the `--user` and `--pass` flags.
Alternatively, you can have the reverse proxy manage authentication and use the Alternatively, you can have the reverse proxy manage authentication and use the
username provided in the configured header with `--user-from-header` (e.g., `----user-from-header=x-remote-user`). username provided in the configured header with `--user-from-header` (e.g., `----user-from-header=x-remote-user`).
Ensure the proxy is trusted and headers cannot be spoofed, as misconfiguration may lead to unauthorized access. Ensure the proxy is trusted and headers cannot be spoofed, as misconfiguration
may lead to unauthorized access.
If either of the above authentication methods is not configured and client If either of the above authentication methods is not configured and client
certificates are required by the `--client-ca` flag passed to the server, the certificates are required by the `--client-ca` flag passed to the server, the
@@ -176,9 +187,11 @@ authentication. Bcrypt is recommended.
To create an htpasswd file: To create an htpasswd file:
touch htpasswd ```sh
htpasswd -B htpasswd user touch htpasswd
htpasswd -B htpasswd anotherUser htpasswd -B htpasswd user
htpasswd -B htpasswd anotherUser
```
The password file can be updated while rclone is running. The password file can be updated while rclone is running.
@@ -186,8 +199,6 @@ Use `--realm` to set the authentication realm.
Use `--salt` to change the password hashing salt from the default. Use `--salt` to change the password hashing salt from the default.
``` ```
rclone serve restic remote:path [flags] rclone serve restic remote:path [flags]
``` ```
@@ -222,5 +233,10 @@ See the [global flags page](/flags/) for global options not listed here.
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone serve](/commands/rclone_serve/) - Serve a remote over a protocol. * [rclone serve](/commands/rclone_serve/) - Serve a remote over a protocol.
<!-- markdownlint-restore -->

View File

@@ -46,20 +46,20 @@ cause problems for S3 clients which rely on the Etag being the MD5.
For a simple set up, to serve `remote:path` over s3, run the server For a simple set up, to serve `remote:path` over s3, run the server
like this: like this:
``` ```sh
rclone serve s3 --auth-key ACCESS_KEY_ID,SECRET_ACCESS_KEY remote:path rclone serve s3 --auth-key ACCESS_KEY_ID,SECRET_ACCESS_KEY remote:path
``` ```
For example, to use a simple folder in the filesystem, run the server For example, to use a simple folder in the filesystem, run the server
with a command like this: with a command like this:
``` ```sh
rclone serve s3 --auth-key ACCESS_KEY_ID,SECRET_ACCESS_KEY local:/path/to/folder rclone serve s3 --auth-key ACCESS_KEY_ID,SECRET_ACCESS_KEY local:/path/to/folder
``` ```
The `rclone.conf` for the server could look like this: The `rclone.conf` for the server could look like this:
``` ```ini
[local] [local]
type = local type = local
``` ```
@@ -72,7 +72,7 @@ will be visible as a warning in the logs. But it will run nonetheless.
This will be compatible with an rclone (client) remote configuration which This will be compatible with an rclone (client) remote configuration which
is defined like this: is defined like this:
``` ```ini
[serves3] [serves3]
type = s3 type = s3
provider = Rclone provider = Rclone
@@ -129,21 +129,21 @@ metadata which will be set as the modification time of the file.
`serve s3` currently supports the following operations. `serve s3` currently supports the following operations.
- Bucket - Bucket
- `ListBuckets` - `ListBuckets`
- `CreateBucket` - `CreateBucket`
- `DeleteBucket` - `DeleteBucket`
- Object - Object
- `HeadObject` - `HeadObject`
- `ListObjects` - `ListObjects`
- `GetObject` - `GetObject`
- `PutObject` - `PutObject`
- `DeleteObject` - `DeleteObject`
- `DeleteObjects` - `DeleteObjects`
- `CreateMultipartUpload` - `CreateMultipartUpload`
- `CompleteMultipartUpload` - `CompleteMultipartUpload`
- `AbortMultipartUpload` - `AbortMultipartUpload`
- `CopyObject` - `CopyObject`
- `UploadPart` - `UploadPart`
Other operations will return error `Unimplemented`. Other operations will return error `Unimplemented`.
@@ -156,7 +156,8 @@ set a single username and password with the `--user` and `--pass` flags.
Alternatively, you can have the reverse proxy manage authentication and use the Alternatively, you can have the reverse proxy manage authentication and use the
username provided in the configured header with `--user-from-header` (e.g., `----user-from-header=x-remote-user`). username provided in the configured header with `--user-from-header` (e.g., `----user-from-header=x-remote-user`).
Ensure the proxy is trusted and headers cannot be spoofed, as misconfiguration may lead to unauthorized access. Ensure the proxy is trusted and headers cannot be spoofed, as misconfiguration
may lead to unauthorized access.
If either of the above authentication methods is not configured and client If either of the above authentication methods is not configured and client
certificates are required by the `--client-ca` flag passed to the server, the certificates are required by the `--client-ca` flag passed to the server, the
@@ -168,9 +169,11 @@ authentication. Bcrypt is recommended.
To create an htpasswd file: To create an htpasswd file:
touch htpasswd ```sh
htpasswd -B htpasswd user touch htpasswd
htpasswd -B htpasswd anotherUser htpasswd -B htpasswd user
htpasswd -B htpasswd anotherUser
```
The password file can be updated while rclone is running. The password file can be updated while rclone is running.
@@ -234,13 +237,16 @@ by `--addr`).
This allows rclone to be a socket-activated service. This allows rclone to be a socket-activated service.
It can be configured with .socket and .service unit files as described in It can be configured with .socket and .service unit files as described in
https://www.freedesktop.org/software/systemd/man/latest/systemd.socket.html <https://www.freedesktop.org/software/systemd/man/latest/systemd.socket.html>.
Socket activation can be tested ad-hoc with the `systemd-socket-activate`command Socket activation can be tested ad-hoc with the `systemd-socket-activate`command
systemd-socket-activate -l 8000 -- rclone serve ```sh
systemd-socket-activate -l 8000 -- rclone serve
```
This will socket-activate rclone on the first connection to port 8000 over TCP. This will socket-activate rclone on the first connection to port 8000 over TCP.
## VFS - Virtual File System ## VFS - Virtual File System
This command uses the VFS layer. This adapts the cloud storage objects This command uses the VFS layer. This adapts the cloud storage objects
@@ -262,8 +268,10 @@ directory should be considered up to date and not refreshed from the
backend. Changes made through the VFS will appear immediately or backend. Changes made through the VFS will appear immediately or
invalidate the cache. invalidate the cache.
```text
--dir-cache-time duration Time to cache directory entries for (default 5m0s) --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) --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 However, changes made directly on the cloud storage by the web
interface or a different copy of rclone will only be picked up once interface or a different copy of rclone will only be picked up once
@@ -275,16 +283,22 @@ You can send a `SIGHUP` signal to rclone for it to flush all
directory caches, regardless of how old they are. Assuming only one directory caches, regardless of how old they are. Assuming only one
rclone instance is running, you can reset the cache like this: rclone instance is running, you can reset the cache like this:
kill -SIGHUP $(pidof rclone) ```sh
kill -SIGHUP $(pidof rclone)
```
If you configure rclone with a [remote control](/rc) then you can use If you configure rclone with a [remote control](/rc) then you can use
rclone rc to flush the whole directory cache: rclone rc to flush the whole directory cache:
rclone rc vfs/forget ```sh
rclone rc vfs/forget
```
Or individual files or directories: Or individual files or directories:
rclone rc vfs/forget file=path/to/file dir=path/to/dir ```sh
rclone rc vfs/forget file=path/to/file dir=path/to/dir
```
## VFS File Buffering ## VFS File Buffering
@@ -315,6 +329,7 @@ write simultaneously to a file. See below for more details.
Note that the VFS cache is separate from the cache backend and you may Note that the VFS cache is separate from the cache backend and you may
find that you need one or the other or both. find that you need one or the other or both.
```text
--cache-dir string Directory rclone will use for caching. --cache-dir string Directory rclone will use for caching.
--vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off) --vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
--vfs-cache-max-age duration Max time since last access of objects in the cache (default 1h0m0s) --vfs-cache-max-age duration Max time since last access of objects in the cache (default 1h0m0s)
@@ -322,6 +337,7 @@ find that you need one or the other or both.
--vfs-cache-min-free-space SizeSuffix Target minimum free space on the disk containing the cache (default off) --vfs-cache-min-free-space SizeSuffix Target minimum free space on the disk containing the cache (default off)
--vfs-cache-poll-interval duration Interval to poll the cache for stale objects (default 1m0s) --vfs-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) --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 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 files are stored in the user cache file area which is OS dependent but
@@ -369,13 +385,13 @@ directly to the remote without caching anything on disk.
This will mean some operations are not possible This will mean some operations are not possible
* Files can't be opened for both read AND write - Files can't be opened for both read AND write
* Files opened for write can't be seeked - Files opened for write can't be seeked
* Existing files opened for write must have O_TRUNC set - 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 read with O_TRUNC will be opened write only
* Files open for write only will behave as if O_TRUNC was supplied - Files open for write only will behave as if O_TRUNC was supplied
* Open modes O_APPEND, O_TRUNC are ignored - Open modes O_APPEND, O_TRUNC are ignored
* If an upload fails it can't be retried - If an upload fails it can't be retried
### --vfs-cache-mode minimal ### --vfs-cache-mode minimal
@@ -385,10 +401,10 @@ write will be a lot more compatible, but uses the minimal disk space.
These operations are not possible These operations are not possible
* Files opened for write only can't be seeked - Files opened for write only can't be seeked
* Existing files opened for write must have O_TRUNC set - Existing files opened for write must have O_TRUNC set
* Files opened for write only will ignore O_APPEND, O_TRUNC - Files opened for write only will ignore O_APPEND, O_TRUNC
* If an upload fails it can't be retried - If an upload fails it can't be retried
### --vfs-cache-mode writes ### --vfs-cache-mode writes
@@ -471,9 +487,11 @@ read, at the cost of an increased number of requests.
These flags control the chunking: These flags control the chunking:
```text
--vfs-read-chunk-size SizeSuffix Read the source objects in chunks (default 128M) --vfs-read-chunk-size SizeSuffix Read the source objects in chunks (default 128M)
--vfs-read-chunk-size-limit SizeSuffix Max chunk doubling size (default off) --vfs-read-chunk-size-limit SizeSuffix Max chunk doubling size (default off)
--vfs-read-chunk-streams int The number of parallel streams to read at once --vfs-read-chunk-streams int The number of parallel streams to read at once
```
The chunking behaves differently depending on the `--vfs-read-chunk-streams` parameter. The chunking behaves differently depending on the `--vfs-read-chunk-streams` parameter.
@@ -487,9 +505,9 @@ value is "off", which is the default, the limit is disabled and the chunk size
will grow indefinitely. will grow indefinitely.
With `--vfs-read-chunk-size 100M` and `--vfs-read-chunk-size-limit 0` 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. the following parts will be downloaded: 0-100M, 100M-200M, 200M-300M, 300M-400M
When `--vfs-read-chunk-size-limit 500M` is specified, the result would be and so on. When `--vfs-read-chunk-size-limit 500M` is specified, the result would
0-100M, 100M-300M, 300M-700M, 700M-1200M, 1200M-1700M and so on. 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. Setting `--vfs-read-chunk-size` to `0` or "off" disables chunked reading.
@@ -527,32 +545,41 @@ In particular S3 and Swift benefit hugely from the `--no-modtime` flag
(or use `--use-server-modtime` for a slightly different effect) as each (or use `--use-server-modtime` for a slightly different effect) as each
read of the modification time takes a transaction. read of the modification time takes a transaction.
```text
--no-checksum Don't compare checksums on up/download. --no-checksum Don't compare checksums on up/download.
--no-modtime Don't read/write the modification time (can speed things up). --no-modtime Don't read/write the modification time (can speed things up).
--no-seek Don't allow seeking in files. --no-seek Don't allow seeking in files.
--read-only Only allow read-only access. --read-only Only allow read-only access.
```
Sometimes rclone is delivered reads or writes out of order. Rather 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 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 write to come in. These flags only come into effect when not using an
on disk cache file. on disk cache file.
```text
--vfs-read-wait duration Time to wait for in-sequence read before seeking (default 20ms) --vfs-read-wait duration Time to wait for in-sequence read before seeking (default 20ms)
--vfs-write-wait duration Time to wait for in-sequence write before giving error (default 1s) --vfs-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), 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 the global flag `--transfers` can be set to adjust the number of parallel uploads
modified files from the cache (the related global flag `--checkers` has no effect on the VFS). of modified files from the cache (the related global flag `--checkers` has no
effect on the VFS).
```text
--transfers int Number of file transfers to run in parallel (default 4) --transfers int Number of file transfers to run in parallel (default 4)
```
## Symlinks ## Symlinks
By default the VFS does not support symlinks. However this may be By default the VFS does not support symlinks. However this may be
enabled with either of the following flags: enabled with either of the following flags:
```text
--links Translate symlinks to/from regular files with a '.rclonelink' extension. --links Translate symlinks to/from regular files with a '.rclonelink' extension.
--vfs-links Translate symlinks to/from regular files with a '.rclonelink' extension for the VFS --vfs-links Translate symlinks to/from regular files with a '.rclonelink' extension for the VFS
```
As most cloud storage systems do not support symlinks directly, rclone As most cloud storage systems do not support symlinks directly, rclone
stores the symlink as a normal file with a special extension. So a stores the symlink as a normal file with a special extension. So a
@@ -564,7 +591,8 @@ Note that `--links` enables symlink translation globally in rclone -
this includes any backend which supports the concept (for example the this includes any backend which supports the concept (for example the
local backend). `--vfs-links` just enables it for the VFS layer. local backend). `--vfs-links` just enables it for the VFS layer.
This scheme is compatible with that used by the [local backend with the --local-links flag](/local/#symlinks-junction-points). This scheme is compatible with that used by the
[local backend with the --local-links flag](/local/#symlinks-junction-points).
The `--vfs-links` flag has been designed for `rclone mount`, `rclone The `--vfs-links` flag has been designed for `rclone mount`, `rclone
nfsmount` and `rclone serve nfs`. nfsmount` and `rclone serve nfs`.
@@ -574,7 +602,7 @@ It hasn't been tested with the other `rclone serve` commands yet.
A limitation of the current implementation is that it expects the A limitation of the current implementation is that it expects the
caller to resolve sub-symlinks. For example given this directory tree caller to resolve sub-symlinks. For example given this directory tree
``` ```text
. .
├── dir ├── dir
│   └── file.txt │   └── file.txt
@@ -652,7 +680,9 @@ sync`.
This flag allows you to manually set the statistics about the filing system. This flag allows you to manually set the statistics about the filing system.
It can be useful when those statistics cannot be read correctly automatically. It can be useful when those statistics cannot be read correctly automatically.
```text
--vfs-disk-space-total-size Manually set the total disk space size (example: 256G, default: -1) --vfs-disk-space-total-size Manually set the total disk space size (example: 256G, default: -1)
```
## Alternate report of used bytes ## Alternate report of used bytes
@@ -663,7 +693,7 @@ With this flag set, instead of relying on the backend to report this
information, rclone will scan the whole remote similar to `rclone size` information, rclone will scan the whole remote similar to `rclone size`
and compute the total used space itself. and compute the total used space itself.
_WARNING._ Contrary to `rclone size`, this flag ignores filters so that the **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 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. calls resulting in extra charges. Use it as a last resort and only with caching.
@@ -681,7 +711,7 @@ Note that some backends won't create metadata unless you pass in the
For example, using `rclone mount` with `--metadata --vfs-metadata-extension .metadata` For example, using `rclone mount` with `--metadata --vfs-metadata-extension .metadata`
we get we get
``` ```sh
$ ls -l /mnt/ $ ls -l /mnt/
total 1048577 total 1048577
-rw-rw-r-- 1 user user 1073741824 Mar 3 16:03 1G -rw-rw-r-- 1 user user 1073741824 Mar 3 16:03 1G
@@ -706,8 +736,6 @@ If the file has no metadata it will be returned as `{}` and if there
is an error reading the metadata the error will be returned as is an error reading the metadata the error will be returned as
`{"error":"error string"}`. `{"error":"error string"}`.
``` ```
rclone serve s3 remote:path [flags] rclone serve s3 remote:path [flags]
``` ```
@@ -778,7 +806,7 @@ See the [global flags page](/flags/) for global options not listed here.
Flags for filtering directory listings Flags for filtering directory listings
``` ```text
--delete-excluded Delete files on dest excluded from sync --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern --exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin) --exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
@@ -806,5 +834,10 @@ Flags for filtering directory listings
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone serve](/commands/rclone_serve/) - Serve a remote over a protocol. * [rclone serve](/commands/rclone_serve/) - Serve a remote over a protocol.
<!-- markdownlint-restore -->

View File

@@ -46,11 +46,13 @@ reachable externally then supply `--addr :2022` for example.
This also supports being run with socket activation, in which case it will This also supports being run with socket activation, in which case it will
listen on the first passed FD. listen on the first passed FD.
It can be configured with .socket and .service unit files as described in It can be configured with .socket and .service unit files as described in
https://www.freedesktop.org/software/systemd/man/latest/systemd.socket.html <https://www.freedesktop.org/software/systemd/man/latest/systemd.socket.html>.
Socket activation can be tested ad-hoc with the `systemd-socket-activate`command: Socket activation can be tested ad-hoc with the `systemd-socket-activate`command:
systemd-socket-activate -l 2222 -- rclone serve sftp :local:vfs/ ```sh
systemd-socket-activate -l 2222 -- rclone serve sftp :local:vfs/
```
This will socket-activate rclone on the first connection to port 2222 over TCP. This will socket-activate rclone on the first connection to port 2222 over TCP.
@@ -60,7 +62,9 @@ sftp backend, but it may not be with other SFTP clients.
If `--stdio` is specified, rclone will serve SFTP over stdio, which can If `--stdio` is specified, rclone will serve SFTP over stdio, which can
be used with sshd via ~/.ssh/authorized_keys, for example: be used with sshd via ~/.ssh/authorized_keys, for example:
restrict,command="rclone serve sftp --stdio ./photos" ssh-rsa ... ```text
restrict,command="rclone serve sftp --stdio ./photos" ssh-rsa ...
```
On the client you need to set `--transfers 1` when using `--stdio`. On the client you need to set `--transfers 1` when using `--stdio`.
Otherwise multiple instances of the rclone server are started by OpenSSH Otherwise multiple instances of the rclone server are started by OpenSSH
@@ -94,8 +98,10 @@ directory should be considered up to date and not refreshed from the
backend. Changes made through the VFS will appear immediately or backend. Changes made through the VFS will appear immediately or
invalidate the cache. invalidate the cache.
```text
--dir-cache-time duration Time to cache directory entries for (default 5m0s) --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) --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 However, changes made directly on the cloud storage by the web
interface or a different copy of rclone will only be picked up once interface or a different copy of rclone will only be picked up once
@@ -107,16 +113,22 @@ You can send a `SIGHUP` signal to rclone for it to flush all
directory caches, regardless of how old they are. Assuming only one directory caches, regardless of how old they are. Assuming only one
rclone instance is running, you can reset the cache like this: rclone instance is running, you can reset the cache like this:
kill -SIGHUP $(pidof rclone) ```sh
kill -SIGHUP $(pidof rclone)
```
If you configure rclone with a [remote control](/rc) then you can use If you configure rclone with a [remote control](/rc) then you can use
rclone rc to flush the whole directory cache: rclone rc to flush the whole directory cache:
rclone rc vfs/forget ```sh
rclone rc vfs/forget
```
Or individual files or directories: Or individual files or directories:
rclone rc vfs/forget file=path/to/file dir=path/to/dir ```sh
rclone rc vfs/forget file=path/to/file dir=path/to/dir
```
## VFS File Buffering ## VFS File Buffering
@@ -147,6 +159,7 @@ write simultaneously to a file. See below for more details.
Note that the VFS cache is separate from the cache backend and you may Note that the VFS cache is separate from the cache backend and you may
find that you need one or the other or both. find that you need one or the other or both.
```text
--cache-dir string Directory rclone will use for caching. --cache-dir string Directory rclone will use for caching.
--vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off) --vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
--vfs-cache-max-age duration Max time since last access of objects in the cache (default 1h0m0s) --vfs-cache-max-age duration Max time since last access of objects in the cache (default 1h0m0s)
@@ -154,6 +167,7 @@ find that you need one or the other or both.
--vfs-cache-min-free-space SizeSuffix Target minimum free space on the disk containing the cache (default off) --vfs-cache-min-free-space SizeSuffix Target minimum free space on the disk containing the cache (default off)
--vfs-cache-poll-interval duration Interval to poll the cache for stale objects (default 1m0s) --vfs-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) --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 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 files are stored in the user cache file area which is OS dependent but
@@ -201,13 +215,13 @@ directly to the remote without caching anything on disk.
This will mean some operations are not possible This will mean some operations are not possible
* Files can't be opened for both read AND write - Files can't be opened for both read AND write
* Files opened for write can't be seeked - Files opened for write can't be seeked
* Existing files opened for write must have O_TRUNC set - 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 read with O_TRUNC will be opened write only
* Files open for write only will behave as if O_TRUNC was supplied - Files open for write only will behave as if O_TRUNC was supplied
* Open modes O_APPEND, O_TRUNC are ignored - Open modes O_APPEND, O_TRUNC are ignored
* If an upload fails it can't be retried - If an upload fails it can't be retried
### --vfs-cache-mode minimal ### --vfs-cache-mode minimal
@@ -217,10 +231,10 @@ write will be a lot more compatible, but uses the minimal disk space.
These operations are not possible These operations are not possible
* Files opened for write only can't be seeked - Files opened for write only can't be seeked
* Existing files opened for write must have O_TRUNC set - Existing files opened for write must have O_TRUNC set
* Files opened for write only will ignore O_APPEND, O_TRUNC - Files opened for write only will ignore O_APPEND, O_TRUNC
* If an upload fails it can't be retried - If an upload fails it can't be retried
### --vfs-cache-mode writes ### --vfs-cache-mode writes
@@ -303,9 +317,11 @@ read, at the cost of an increased number of requests.
These flags control the chunking: These flags control the chunking:
```text
--vfs-read-chunk-size SizeSuffix Read the source objects in chunks (default 128M) --vfs-read-chunk-size SizeSuffix Read the source objects in chunks (default 128M)
--vfs-read-chunk-size-limit SizeSuffix Max chunk doubling size (default off) --vfs-read-chunk-size-limit SizeSuffix Max chunk doubling size (default off)
--vfs-read-chunk-streams int The number of parallel streams to read at once --vfs-read-chunk-streams int The number of parallel streams to read at once
```
The chunking behaves differently depending on the `--vfs-read-chunk-streams` parameter. The chunking behaves differently depending on the `--vfs-read-chunk-streams` parameter.
@@ -319,9 +335,9 @@ value is "off", which is the default, the limit is disabled and the chunk size
will grow indefinitely. will grow indefinitely.
With `--vfs-read-chunk-size 100M` and `--vfs-read-chunk-size-limit 0` 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. the following parts will be downloaded: 0-100M, 100M-200M, 200M-300M, 300M-400M
When `--vfs-read-chunk-size-limit 500M` is specified, the result would be and so on. When `--vfs-read-chunk-size-limit 500M` is specified, the result would
0-100M, 100M-300M, 300M-700M, 700M-1200M, 1200M-1700M and so on. 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. Setting `--vfs-read-chunk-size` to `0` or "off" disables chunked reading.
@@ -359,32 +375,41 @@ In particular S3 and Swift benefit hugely from the `--no-modtime` flag
(or use `--use-server-modtime` for a slightly different effect) as each (or use `--use-server-modtime` for a slightly different effect) as each
read of the modification time takes a transaction. read of the modification time takes a transaction.
```text
--no-checksum Don't compare checksums on up/download. --no-checksum Don't compare checksums on up/download.
--no-modtime Don't read/write the modification time (can speed things up). --no-modtime Don't read/write the modification time (can speed things up).
--no-seek Don't allow seeking in files. --no-seek Don't allow seeking in files.
--read-only Only allow read-only access. --read-only Only allow read-only access.
```
Sometimes rclone is delivered reads or writes out of order. Rather 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 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 write to come in. These flags only come into effect when not using an
on disk cache file. on disk cache file.
```text
--vfs-read-wait duration Time to wait for in-sequence read before seeking (default 20ms) --vfs-read-wait duration Time to wait for in-sequence read before seeking (default 20ms)
--vfs-write-wait duration Time to wait for in-sequence write before giving error (default 1s) --vfs-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), 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 the global flag `--transfers` can be set to adjust the number of parallel uploads
modified files from the cache (the related global flag `--checkers` has no effect on the VFS). of modified files from the cache (the related global flag `--checkers` has no
effect on the VFS).
```text
--transfers int Number of file transfers to run in parallel (default 4) --transfers int Number of file transfers to run in parallel (default 4)
```
## Symlinks ## Symlinks
By default the VFS does not support symlinks. However this may be By default the VFS does not support symlinks. However this may be
enabled with either of the following flags: enabled with either of the following flags:
```text
--links Translate symlinks to/from regular files with a '.rclonelink' extension. --links Translate symlinks to/from regular files with a '.rclonelink' extension.
--vfs-links Translate symlinks to/from regular files with a '.rclonelink' extension for the VFS --vfs-links Translate symlinks to/from regular files with a '.rclonelink' extension for the VFS
```
As most cloud storage systems do not support symlinks directly, rclone As most cloud storage systems do not support symlinks directly, rclone
stores the symlink as a normal file with a special extension. So a stores the symlink as a normal file with a special extension. So a
@@ -396,7 +421,8 @@ Note that `--links` enables symlink translation globally in rclone -
this includes any backend which supports the concept (for example the this includes any backend which supports the concept (for example the
local backend). `--vfs-links` just enables it for the VFS layer. local backend). `--vfs-links` just enables it for the VFS layer.
This scheme is compatible with that used by the [local backend with the --local-links flag](/local/#symlinks-junction-points). This scheme is compatible with that used by the
[local backend with the --local-links flag](/local/#symlinks-junction-points).
The `--vfs-links` flag has been designed for `rclone mount`, `rclone The `--vfs-links` flag has been designed for `rclone mount`, `rclone
nfsmount` and `rclone serve nfs`. nfsmount` and `rclone serve nfs`.
@@ -406,7 +432,7 @@ It hasn't been tested with the other `rclone serve` commands yet.
A limitation of the current implementation is that it expects the A limitation of the current implementation is that it expects the
caller to resolve sub-symlinks. For example given this directory tree caller to resolve sub-symlinks. For example given this directory tree
``` ```text
. .
├── dir ├── dir
│   └── file.txt │   └── file.txt
@@ -484,7 +510,9 @@ sync`.
This flag allows you to manually set the statistics about the filing system. This flag allows you to manually set the statistics about the filing system.
It can be useful when those statistics cannot be read correctly automatically. It can be useful when those statistics cannot be read correctly automatically.
```text
--vfs-disk-space-total-size Manually set the total disk space size (example: 256G, default: -1) --vfs-disk-space-total-size Manually set the total disk space size (example: 256G, default: -1)
```
## Alternate report of used bytes ## Alternate report of used bytes
@@ -495,7 +523,7 @@ With this flag set, instead of relying on the backend to report this
information, rclone will scan the whole remote similar to `rclone size` information, rclone will scan the whole remote similar to `rclone size`
and compute the total used space itself. and compute the total used space itself.
_WARNING._ Contrary to `rclone size`, this flag ignores filters so that the **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 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. calls resulting in extra charges. Use it as a last resort and only with caching.
@@ -513,7 +541,7 @@ Note that some backends won't create metadata unless you pass in the
For example, using `rclone mount` with `--metadata --vfs-metadata-extension .metadata` For example, using `rclone mount` with `--metadata --vfs-metadata-extension .metadata`
we get we get
``` ```sh
$ ls -l /mnt/ $ ls -l /mnt/
total 1048577 total 1048577
-rw-rw-r-- 1 user user 1073741824 Mar 3 16:03 1G -rw-rw-r-- 1 user user 1073741824 Mar 3 16:03 1G
@@ -561,41 +589,43 @@ options - it is the job of the proxy program to make a complete
config. config.
This config generated must have this extra parameter This config generated must have this extra parameter
- `_root` - root to use for the backend - `_root` - root to use for the backend
And it may have this parameter And it may have this parameter
- `_obscure` - comma separated strings for parameters to obscure - `_obscure` - comma separated strings for parameters to obscure
If password authentication was used by the client, input to the proxy If password authentication was used by the client, input to the proxy
process (on STDIN) would look similar to this: process (on STDIN) would look similar to this:
``` ```json
{ {
"user": "me", "user": "me",
"pass": "mypassword" "pass": "mypassword"
} }
``` ```
If public-key authentication was used by the client, input to the If public-key authentication was used by the client, input to the
proxy process (on STDIN) would look similar to this: proxy process (on STDIN) would look similar to this:
``` ```json
{ {
"user": "me", "user": "me",
"public_key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQDuwESFdAe14hVS6omeyX7edc...JQdf" "public_key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQDuwESFdAe14hVS6omeyX7edc...JQdf"
} }
``` ```
And as an example return this on STDOUT And as an example return this on STDOUT
``` ```json
{ {
"type": "sftp", "type": "sftp",
"_root": "", "_root": "",
"_obscure": "pass", "_obscure": "pass",
"user": "me", "user": "me",
"pass": "mypassword", "pass": "mypassword",
"host": "sftp.example.com" "host": "sftp.example.com"
} }
``` ```
@@ -617,9 +647,7 @@ password or public-key is changed the cache will need to expire (which takes 5 m
before it takes effect. before it takes effect.
This can be used to build general purpose proxies to any kind of This can be used to build general purpose proxies to any kind of
backend that rclone supports. backend that rclone supports.
``` ```
rclone serve sftp remote:path [flags] rclone serve sftp remote:path [flags]
@@ -678,7 +706,7 @@ See the [global flags page](/flags/) for global options not listed here.
Flags for filtering directory listings Flags for filtering directory listings
``` ```text
--delete-excluded Delete files on dest excluded from sync --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern --exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin) --exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
@@ -706,5 +734,10 @@ Flags for filtering directory listings
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone serve](/commands/rclone_serve/) - Serve a remote over a protocol. * [rclone serve](/commands/rclone_serve/) - Serve a remote over a protocol.
<!-- markdownlint-restore -->

View File

@@ -16,7 +16,7 @@ browser, or you can make a remote of type WebDAV to read and write it.
## WebDAV options ## WebDAV options
### --etag-hash ### --etag-hash
This controls the ETag header. Without this flag the ETag will be This controls the ETag header. Without this flag the ETag will be
based on the ModTime and Size of the object. based on the ModTime and Size of the object.
@@ -28,39 +28,53 @@ to see the full list.
## Access WebDAV on Windows ## Access WebDAV on Windows
WebDAV shared folder can be mapped as a drive on Windows, however the default settings prevent it. WebDAV shared folder can be mapped as a drive on Windows, however the default
Windows will fail to connect to the server using insecure Basic authentication. settings prevent it. Windows will fail to connect to the server using insecure
It will not even display any login dialog. Windows requires SSL / HTTPS connection to be used with Basic. Basic authentication. It will not even display any login dialog. Windows
If you try to connect via Add Network Location Wizard you will get the following error: requires SSL / HTTPS connection to be used with Basic. If you try to connect
via Add Network Location Wizard you will get the following error:
"The folder you entered does not appear to be valid. Please choose another". "The folder you entered does not appear to be valid. Please choose another".
However, you still can connect if you set the following registry key on a client machine: However, you still can connect if you set the following registry key on a
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters\BasicAuthLevel to 2. client machine:
The BasicAuthLevel can be set to the following values: `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters\BasicAuthLevel`
0 - Basic authentication disabled to 2. The BasicAuthLevel can be set to the following values:
1 - Basic authentication enabled for SSL connections only
2 - Basic authentication enabled for SSL connections and for non-SSL connections ```text
0 - Basic authentication disabled
1 - Basic authentication enabled for SSL connections only
2 - Basic authentication enabled for SSL connections and for non-SSL connections
```
If required, increase the FileSizeLimitInBytes to a higher value. If required, increase the FileSizeLimitInBytes to a higher value.
Navigate to the Services interface, then restart the WebClient service. Navigate to the Services interface, then restart the WebClient service.
## Access Office applications on WebDAV ## Access Office applications on WebDAV
Navigate to following registry HKEY_CURRENT_USER\Software\Microsoft\Office\[14.0/15.0/16.0]\Common\Internet Navigate to following registry
`HKEY_CURRENT_USER\Software\Microsoft\Office\[14.0/15.0/16.0]\Common\Internet`
Create a new DWORD BasicAuthLevel with value 2. Create a new DWORD BasicAuthLevel with value 2.
0 - Basic authentication disabled
1 - Basic authentication enabled for SSL connections only
2 - Basic authentication enabled for SSL and for non-SSL connections
https://learn.microsoft.com/en-us/office/troubleshoot/powerpoint/office-opens-blank-from-sharepoint ```text
0 - Basic authentication disabled
1 - Basic authentication enabled for SSL connections only
2 - Basic authentication enabled for SSL and for non-SSL connections
```
<https://learn.microsoft.com/en-us/office/troubleshoot/powerpoint/office-opens-blank-from-sharepoint>
## Serving over a unix socket ## Serving over a unix socket
You can serve the webdav on a unix socket like this: You can serve the webdav on a unix socket like this:
rclone serve webdav --addr unix:///tmp/my.socket remote:path ```sh
rclone serve webdav --addr unix:///tmp/my.socket remote:path
```
and connect to it like this using rclone and the webdav backend: and connect to it like this using rclone and the webdav backend:
rclone --webdav-unix-socket /tmp/my.socket --webdav-url http://localhost lsf :webdav: ```sh
rclone --webdav-unix-socket /tmp/my.socket --webdav-url http://localhost lsf :webdav:
```
Note that there is no authentication on http protocol - this is expected to be Note that there is no authentication on http protocol - this is expected to be
done by the permissions on the socket. done by the permissions on the socket.
@@ -121,13 +135,16 @@ by `--addr`).
This allows rclone to be a socket-activated service. This allows rclone to be a socket-activated service.
It can be configured with .socket and .service unit files as described in It can be configured with .socket and .service unit files as described in
https://www.freedesktop.org/software/systemd/man/latest/systemd.socket.html <https://www.freedesktop.org/software/systemd/man/latest/systemd.socket.html>.
Socket activation can be tested ad-hoc with the `systemd-socket-activate`command Socket activation can be tested ad-hoc with the `systemd-socket-activate`command
systemd-socket-activate -l 8000 -- rclone serve ```sh
systemd-socket-activate -l 8000 -- rclone serve
```
This will socket-activate rclone on the first connection to port 8000 over TCP. This will socket-activate rclone on the first connection to port 8000 over TCP.
### Template ### Template
`--template` allows a user to specify a custom markup template for HTTP `--template` allows a user to specify a custom markup template for HTTP
@@ -153,9 +170,9 @@ to be used within the template to server pages:
|-- .Size | Size in Bytes of the entry. | |-- .Size | Size in Bytes of the entry. |
|-- .ModTime | The UTC timestamp of an entry. | |-- .ModTime | The UTC timestamp of an entry. |
The server also makes the following functions available so that they can be used within the The server also makes the following functions available so that they can be used
template. These functions help extend the options for dynamic rendering of HTML. They can within the template. These functions help extend the options for dynamic
be used to render HTML based on specific conditions. rendering of HTML. They can be used to render HTML based on specific conditions.
| Function | Description | | Function | Description |
| :---------- | :---------- | | :---------- | :---------- |
@@ -173,7 +190,8 @@ set a single username and password with the `--user` and `--pass` flags.
Alternatively, you can have the reverse proxy manage authentication and use the Alternatively, you can have the reverse proxy manage authentication and use the
username provided in the configured header with `--user-from-header` (e.g., `----user-from-header=x-remote-user`). username provided in the configured header with `--user-from-header` (e.g., `----user-from-header=x-remote-user`).
Ensure the proxy is trusted and headers cannot be spoofed, as misconfiguration may lead to unauthorized access. Ensure the proxy is trusted and headers cannot be spoofed, as misconfiguration
may lead to unauthorized access.
If either of the above authentication methods is not configured and client If either of the above authentication methods is not configured and client
certificates are required by the `--client-ca` flag passed to the server, the certificates are required by the `--client-ca` flag passed to the server, the
@@ -185,9 +203,11 @@ authentication. Bcrypt is recommended.
To create an htpasswd file: To create an htpasswd file:
touch htpasswd ```sh
htpasswd -B htpasswd user touch htpasswd
htpasswd -B htpasswd anotherUser htpasswd -B htpasswd user
htpasswd -B htpasswd anotherUser
```
The password file can be updated while rclone is running. The password file can be updated while rclone is running.
@@ -216,8 +236,10 @@ directory should be considered up to date and not refreshed from the
backend. Changes made through the VFS will appear immediately or backend. Changes made through the VFS will appear immediately or
invalidate the cache. invalidate the cache.
```text
--dir-cache-time duration Time to cache directory entries for (default 5m0s) --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) --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 However, changes made directly on the cloud storage by the web
interface or a different copy of rclone will only be picked up once interface or a different copy of rclone will only be picked up once
@@ -229,16 +251,22 @@ You can send a `SIGHUP` signal to rclone for it to flush all
directory caches, regardless of how old they are. Assuming only one directory caches, regardless of how old they are. Assuming only one
rclone instance is running, you can reset the cache like this: rclone instance is running, you can reset the cache like this:
kill -SIGHUP $(pidof rclone) ```sh
kill -SIGHUP $(pidof rclone)
```
If you configure rclone with a [remote control](/rc) then you can use If you configure rclone with a [remote control](/rc) then you can use
rclone rc to flush the whole directory cache: rclone rc to flush the whole directory cache:
rclone rc vfs/forget ```sh
rclone rc vfs/forget
```
Or individual files or directories: Or individual files or directories:
rclone rc vfs/forget file=path/to/file dir=path/to/dir ```sh
rclone rc vfs/forget file=path/to/file dir=path/to/dir
```
## VFS File Buffering ## VFS File Buffering
@@ -269,6 +297,7 @@ write simultaneously to a file. See below for more details.
Note that the VFS cache is separate from the cache backend and you may Note that the VFS cache is separate from the cache backend and you may
find that you need one or the other or both. find that you need one or the other or both.
```text
--cache-dir string Directory rclone will use for caching. --cache-dir string Directory rclone will use for caching.
--vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off) --vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
--vfs-cache-max-age duration Max time since last access of objects in the cache (default 1h0m0s) --vfs-cache-max-age duration Max time since last access of objects in the cache (default 1h0m0s)
@@ -276,6 +305,7 @@ find that you need one or the other or both.
--vfs-cache-min-free-space SizeSuffix Target minimum free space on the disk containing the cache (default off) --vfs-cache-min-free-space SizeSuffix Target minimum free space on the disk containing the cache (default off)
--vfs-cache-poll-interval duration Interval to poll the cache for stale objects (default 1m0s) --vfs-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) --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 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 files are stored in the user cache file area which is OS dependent but
@@ -323,13 +353,13 @@ directly to the remote without caching anything on disk.
This will mean some operations are not possible This will mean some operations are not possible
* Files can't be opened for both read AND write - Files can't be opened for both read AND write
* Files opened for write can't be seeked - Files opened for write can't be seeked
* Existing files opened for write must have O_TRUNC set - 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 read with O_TRUNC will be opened write only
* Files open for write only will behave as if O_TRUNC was supplied - Files open for write only will behave as if O_TRUNC was supplied
* Open modes O_APPEND, O_TRUNC are ignored - Open modes O_APPEND, O_TRUNC are ignored
* If an upload fails it can't be retried - If an upload fails it can't be retried
### --vfs-cache-mode minimal ### --vfs-cache-mode minimal
@@ -339,10 +369,10 @@ write will be a lot more compatible, but uses the minimal disk space.
These operations are not possible These operations are not possible
* Files opened for write only can't be seeked - Files opened for write only can't be seeked
* Existing files opened for write must have O_TRUNC set - Existing files opened for write must have O_TRUNC set
* Files opened for write only will ignore O_APPEND, O_TRUNC - Files opened for write only will ignore O_APPEND, O_TRUNC
* If an upload fails it can't be retried - If an upload fails it can't be retried
### --vfs-cache-mode writes ### --vfs-cache-mode writes
@@ -425,9 +455,11 @@ read, at the cost of an increased number of requests.
These flags control the chunking: These flags control the chunking:
```text
--vfs-read-chunk-size SizeSuffix Read the source objects in chunks (default 128M) --vfs-read-chunk-size SizeSuffix Read the source objects in chunks (default 128M)
--vfs-read-chunk-size-limit SizeSuffix Max chunk doubling size (default off) --vfs-read-chunk-size-limit SizeSuffix Max chunk doubling size (default off)
--vfs-read-chunk-streams int The number of parallel streams to read at once --vfs-read-chunk-streams int The number of parallel streams to read at once
```
The chunking behaves differently depending on the `--vfs-read-chunk-streams` parameter. The chunking behaves differently depending on the `--vfs-read-chunk-streams` parameter.
@@ -441,9 +473,9 @@ value is "off", which is the default, the limit is disabled and the chunk size
will grow indefinitely. will grow indefinitely.
With `--vfs-read-chunk-size 100M` and `--vfs-read-chunk-size-limit 0` 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. the following parts will be downloaded: 0-100M, 100M-200M, 200M-300M, 300M-400M
When `--vfs-read-chunk-size-limit 500M` is specified, the result would be and so on. When `--vfs-read-chunk-size-limit 500M` is specified, the result would
0-100M, 100M-300M, 300M-700M, 700M-1200M, 1200M-1700M and so on. 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. Setting `--vfs-read-chunk-size` to `0` or "off" disables chunked reading.
@@ -481,32 +513,41 @@ In particular S3 and Swift benefit hugely from the `--no-modtime` flag
(or use `--use-server-modtime` for a slightly different effect) as each (or use `--use-server-modtime` for a slightly different effect) as each
read of the modification time takes a transaction. read of the modification time takes a transaction.
```text
--no-checksum Don't compare checksums on up/download. --no-checksum Don't compare checksums on up/download.
--no-modtime Don't read/write the modification time (can speed things up). --no-modtime Don't read/write the modification time (can speed things up).
--no-seek Don't allow seeking in files. --no-seek Don't allow seeking in files.
--read-only Only allow read-only access. --read-only Only allow read-only access.
```
Sometimes rclone is delivered reads or writes out of order. Rather 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 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 write to come in. These flags only come into effect when not using an
on disk cache file. on disk cache file.
```text
--vfs-read-wait duration Time to wait for in-sequence read before seeking (default 20ms) --vfs-read-wait duration Time to wait for in-sequence read before seeking (default 20ms)
--vfs-write-wait duration Time to wait for in-sequence write before giving error (default 1s) --vfs-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), 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 the global flag `--transfers` can be set to adjust the number of parallel uploads
modified files from the cache (the related global flag `--checkers` has no effect on the VFS). of modified files from the cache (the related global flag `--checkers` has no
effect on the VFS).
```text
--transfers int Number of file transfers to run in parallel (default 4) --transfers int Number of file transfers to run in parallel (default 4)
```
## Symlinks ## Symlinks
By default the VFS does not support symlinks. However this may be By default the VFS does not support symlinks. However this may be
enabled with either of the following flags: enabled with either of the following flags:
```text
--links Translate symlinks to/from regular files with a '.rclonelink' extension. --links Translate symlinks to/from regular files with a '.rclonelink' extension.
--vfs-links Translate symlinks to/from regular files with a '.rclonelink' extension for the VFS --vfs-links Translate symlinks to/from regular files with a '.rclonelink' extension for the VFS
```
As most cloud storage systems do not support symlinks directly, rclone As most cloud storage systems do not support symlinks directly, rclone
stores the symlink as a normal file with a special extension. So a stores the symlink as a normal file with a special extension. So a
@@ -518,7 +559,8 @@ Note that `--links` enables symlink translation globally in rclone -
this includes any backend which supports the concept (for example the this includes any backend which supports the concept (for example the
local backend). `--vfs-links` just enables it for the VFS layer. local backend). `--vfs-links` just enables it for the VFS layer.
This scheme is compatible with that used by the [local backend with the --local-links flag](/local/#symlinks-junction-points). This scheme is compatible with that used by the
[local backend with the --local-links flag](/local/#symlinks-junction-points).
The `--vfs-links` flag has been designed for `rclone mount`, `rclone The `--vfs-links` flag has been designed for `rclone mount`, `rclone
nfsmount` and `rclone serve nfs`. nfsmount` and `rclone serve nfs`.
@@ -528,7 +570,7 @@ It hasn't been tested with the other `rclone serve` commands yet.
A limitation of the current implementation is that it expects the A limitation of the current implementation is that it expects the
caller to resolve sub-symlinks. For example given this directory tree caller to resolve sub-symlinks. For example given this directory tree
``` ```text
. .
├── dir ├── dir
│   └── file.txt │   └── file.txt
@@ -606,7 +648,9 @@ sync`.
This flag allows you to manually set the statistics about the filing system. This flag allows you to manually set the statistics about the filing system.
It can be useful when those statistics cannot be read correctly automatically. It can be useful when those statistics cannot be read correctly automatically.
```text
--vfs-disk-space-total-size Manually set the total disk space size (example: 256G, default: -1) --vfs-disk-space-total-size Manually set the total disk space size (example: 256G, default: -1)
```
## Alternate report of used bytes ## Alternate report of used bytes
@@ -617,7 +661,7 @@ With this flag set, instead of relying on the backend to report this
information, rclone will scan the whole remote similar to `rclone size` information, rclone will scan the whole remote similar to `rclone size`
and compute the total used space itself. and compute the total used space itself.
_WARNING._ Contrary to `rclone size`, this flag ignores filters so that the **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 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. calls resulting in extra charges. Use it as a last resort and only with caching.
@@ -635,7 +679,7 @@ Note that some backends won't create metadata unless you pass in the
For example, using `rclone mount` with `--metadata --vfs-metadata-extension .metadata` For example, using `rclone mount` with `--metadata --vfs-metadata-extension .metadata`
we get we get
``` ```sh
$ ls -l /mnt/ $ ls -l /mnt/
total 1048577 total 1048577
-rw-rw-r-- 1 user user 1073741824 Mar 3 16:03 1G -rw-rw-r-- 1 user user 1073741824 Mar 3 16:03 1G
@@ -683,41 +727,43 @@ options - it is the job of the proxy program to make a complete
config. config.
This config generated must have this extra parameter This config generated must have this extra parameter
- `_root` - root to use for the backend - `_root` - root to use for the backend
And it may have this parameter And it may have this parameter
- `_obscure` - comma separated strings for parameters to obscure - `_obscure` - comma separated strings for parameters to obscure
If password authentication was used by the client, input to the proxy If password authentication was used by the client, input to the proxy
process (on STDIN) would look similar to this: process (on STDIN) would look similar to this:
``` ```json
{ {
"user": "me", "user": "me",
"pass": "mypassword" "pass": "mypassword"
} }
``` ```
If public-key authentication was used by the client, input to the If public-key authentication was used by the client, input to the
proxy process (on STDIN) would look similar to this: proxy process (on STDIN) would look similar to this:
``` ```json
{ {
"user": "me", "user": "me",
"public_key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQDuwESFdAe14hVS6omeyX7edc...JQdf" "public_key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQDuwESFdAe14hVS6omeyX7edc...JQdf"
} }
``` ```
And as an example return this on STDOUT And as an example return this on STDOUT
``` ```json
{ {
"type": "sftp", "type": "sftp",
"_root": "", "_root": "",
"_obscure": "pass", "_obscure": "pass",
"user": "me", "user": "me",
"pass": "mypassword", "pass": "mypassword",
"host": "sftp.example.com" "host": "sftp.example.com"
} }
``` ```
@@ -739,9 +785,7 @@ password or public-key is changed the cache will need to expire (which takes 5 m
before it takes effect. before it takes effect.
This can be used to build general purpose proxies to any kind of This can be used to build general purpose proxies to any kind of
backend that rclone supports. backend that rclone supports.
``` ```
rclone serve webdav remote:path [flags] rclone serve webdav remote:path [flags]
@@ -812,7 +856,7 @@ See the [global flags page](/flags/) for global options not listed here.
Flags for filtering directory listings Flags for filtering directory listings
``` ```text
--delete-excluded Delete files on dest excluded from sync --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern --exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin) --exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
@@ -840,5 +884,10 @@ Flags for filtering directory listings
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone serve](/commands/rclone_serve/) - Serve a remote over a protocol. * [rclone serve](/commands/rclone_serve/) - Serve a remote over a protocol.
<!-- markdownlint-restore -->

View File

@@ -22,16 +22,21 @@ inaccessible.true
You can use it to tier single object You can use it to tier single object
rclone settier Cool remote:path/file ```sh
rclone settier Cool remote:path/file
```
Or use rclone filters to set tier on only specific files Or use rclone filters to set tier on only specific files
rclone --include "*.txt" settier Hot remote:path/dir ```sh
rclone --include "*.txt" settier Hot remote:path/dir
```
Or just provide remote directory and all files in directory will be tiered Or just provide remote directory and all files in directory will be tiered
rclone settier tier remote:path/dir ```sh
rclone settier tier remote:path/dir
```
``` ```
rclone settier tier remote:path [flags] rclone settier tier remote:path [flags]
@@ -47,5 +52,10 @@ See the [global flags page](/flags/) for global options not listed here.
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends. * [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends.
<!-- markdownlint-restore -->

View File

@@ -30,7 +30,6 @@ as a relative path).
This command can also hash data received on STDIN, if not passing This command can also hash data received on STDIN, if not passing
a remote:path. a remote:path.
``` ```
rclone sha1sum remote:path [flags] rclone sha1sum remote:path [flags]
``` ```
@@ -52,7 +51,7 @@ See the [global flags page](/flags/) for global options not listed here.
Flags for filtering directory listings Flags for filtering directory listings
``` ```text
--delete-excluded Delete files on dest excluded from sync --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern --exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin) --exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
@@ -82,12 +81,17 @@ Flags for filtering directory listings
Flags for listing directories Flags for listing directories
``` ```text
--default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z) --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
--fast-list Use recursive list if available; uses more memory but fewer transactions --fast-list Use recursive list if available; uses more memory but fewer transactions
``` ```
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends. * [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends.
<!-- markdownlint-restore -->

View File

@@ -28,7 +28,6 @@ Rclone will then show a notice in the log indicating how many such
files were encountered, and count them in as empty files in the output files were encountered, and count them in as empty files in the output
of the size command. of the size command.
``` ```
rclone size remote:path [flags] rclone size remote:path [flags]
``` ```
@@ -47,7 +46,7 @@ See the [global flags page](/flags/) for global options not listed here.
Flags for filtering directory listings Flags for filtering directory listings
``` ```text
--delete-excluded Delete files on dest excluded from sync --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern --exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin) --exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
@@ -77,12 +76,17 @@ Flags for filtering directory listings
Flags for listing directories Flags for listing directories
``` ```text
--default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z) --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
--fast-list Use recursive list if available; uses more memory but fewer transactions --fast-list Use recursive list if available; uses more memory but fewer transactions
``` ```
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends. * [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends.
<!-- markdownlint-restore -->

View File

@@ -20,7 +20,9 @@ want to delete files from destination, use the
**Important**: Since this can cause data loss, test first with the **Important**: Since this can cause data loss, test first with the
`--dry-run` or the `--interactive`/`i` flag. `--dry-run` or the `--interactive`/`i` flag.
rclone sync --interactive SOURCE remote:DESTINATION ```sh
rclone sync --interactive SOURCE remote:DESTINATION
```
Files in the destination won't be deleted if there were any errors at any Files in the destination won't be deleted if there were any errors at any
point. Duplicate objects (files with the same name, on those providers that point. Duplicate objects (files with the same name, on those providers that
@@ -37,7 +39,7 @@ If dest:path doesn't exist, it is created and the source:path contents
go there. go there.
It is not possible to sync overlapping remotes. However, you may exclude It is not possible to sync overlapping remotes. However, you may exclude
the destination from the sync with a filter rule or by putting an the destination from the sync with a filter rule or by putting an
exclude-if-present file inside the destination directory and sync to a exclude-if-present file inside the destination directory and sync to a
destination that is inside the source directory. destination that is inside the source directory.
@@ -46,20 +48,23 @@ the backend supports it. If metadata syncing is required then use the
`--metadata` flag. `--metadata` flag.
Note that the modification time and metadata for the root directory Note that the modification time and metadata for the root directory
will **not** be synced. See https://github.com/rclone/rclone/issues/7652 will **not** be synced. See <https://github.com/rclone/rclone/issues/7652>
for more info. for more info.
**Note**: Use the `-P`/`--progress` flag to view real-time transfer statistics **Note**: Use the `-P`/`--progress` flag to view real-time transfer statistics
**Note**: Use the `rclone dedupe` command to deal with "Duplicate object/directory found in source/destination - ignoring" errors. **Note**: Use the `rclone dedupe` command to deal with "Duplicate
See [this forum post](https://forum.rclone.org/t/sync-not-clearing-duplicates/14372) for more info. object/directory found in source/destination - ignoring" errors.
See [this forum post](https://forum.rclone.org/t/sync-not-clearing-duplicates/14372)
for more info.
# Logger Flags ## Logger Flags
The `--differ`, `--missing-on-dst`, `--missing-on-src`, `--match` and `--error` flags write paths, The `--differ`, `--missing-on-dst`, `--missing-on-src`, `--match` and `--error`
one per line, to the file name (or stdout if it is `-`) supplied. What they write is described flags write paths, one per line, to the file name (or stdout if it is `-`)
in the help below. For example `--differ` will write all paths which are present supplied. What they write is described in the help below. For example
on both the source and destination but different. `--differ` will write all paths which are present on both the source and
destination but different.
The `--combined` flag will write a file (or stdout) which contains all 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 file paths with a symbol and then a space and then the path to tell
@@ -92,9 +97,7 @@ are not currently supported:
Note also that each file is logged during execution, as opposed to after, so it Note also that each file is logged during execution, as opposed to after, so it
is most useful as a predictor of what SHOULD happen to each file is most useful as a predictor of what SHOULD happen to each file
(which may or may not match what actually DID.) (which may or may not match what actually DID).
``` ```
rclone sync source:path dest:path [flags] rclone sync source:path dest:path [flags]
@@ -130,7 +133,7 @@ See the [global flags page](/flags/) for global options not listed here.
Flags for anything which can copy a file Flags for anything which can copy a file
``` ```text
--check-first Do all the checks before starting transfers --check-first Do all the checks before starting transfers
-c, --checksum Check for changes with size & checksum (if available, or fallback to size only) -c, --checksum Check for changes with size & checksum (if available, or fallback to size only)
--compare-dest stringArray Include additional server-side paths during comparison --compare-dest stringArray Include additional server-side paths during comparison
@@ -171,7 +174,7 @@ Flags for anything which can copy a file
Flags used for sync commands Flags used for sync commands
``` ```text
--backup-dir string Make backups into hierarchy based in DIR --backup-dir string Make backups into hierarchy based in DIR
--delete-after When synchronizing, delete files on destination after transferring (default) --delete-after When synchronizing, delete files on destination after transferring (default)
--delete-before When synchronizing, delete files on destination before transferring --delete-before When synchronizing, delete files on destination before transferring
@@ -191,7 +194,7 @@ Flags used for sync commands
Important flags useful for most commands Important flags useful for most commands
``` ```text
-n, --dry-run Do a trial run with no permanent changes -n, --dry-run Do a trial run with no permanent changes
-i, --interactive Enable interactive mode -i, --interactive Enable interactive mode
-v, --verbose count Print lots more stuff (repeat for more) -v, --verbose count Print lots more stuff (repeat for more)
@@ -201,7 +204,7 @@ Important flags useful for most commands
Flags for filtering directory listings Flags for filtering directory listings
``` ```text
--delete-excluded Delete files on dest excluded from sync --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern --exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin) --exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
@@ -231,12 +234,17 @@ Flags for filtering directory listings
Flags for listing directories Flags for listing directories
``` ```text
--default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z) --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
--fast-list Use recursive list if available; uses more memory but fewer transactions --fast-list Use recursive list if available; uses more memory but fewer transactions
``` ```
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends. * [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends.
<!-- markdownlint-restore -->

View File

@@ -14,14 +14,15 @@ Rclone test is used to run test commands.
Select which test command you want with the subcommand, eg Select which test command you want with the subcommand, eg
rclone test memory remote: ```sh
rclone test memory remote:
```
Each subcommand has its own options which you can see in their help. Each subcommand has its own options which you can see in their help.
**NB** Be careful running these commands, they may do strange things **NB** Be careful running these commands, they may do strange things
so reading their documentation first is recommended. so reading their documentation first is recommended.
## Options ## Options
``` ```
@@ -32,6 +33,9 @@ See the [global flags page](/flags/) for global options not listed here.
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends. * [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends.
* [rclone test changenotify](/commands/rclone_test_changenotify/) - Log any change notify requests for the remote passed in. * [rclone test changenotify](/commands/rclone_test_changenotify/) - Log any change notify requests for the remote passed in.
* [rclone test histogram](/commands/rclone_test_histogram/) - Makes a histogram of file name characters. * [rclone test histogram](/commands/rclone_test_histogram/) - Makes a histogram of file name characters.
@@ -40,3 +44,5 @@ See the [global flags page](/flags/) for global options not listed here.
* [rclone test makefiles](/commands/rclone_test_makefiles/) - Make a random file hierarchy in a directory * [rclone test makefiles](/commands/rclone_test_makefiles/) - Make a random file hierarchy in a directory
* [rclone test memory](/commands/rclone_test_memory/) - Load all the objects at remote:path into memory and report memory stats. * [rclone test memory](/commands/rclone_test_memory/) - Load all the objects at remote:path into memory and report memory stats.
<!-- markdownlint-restore -->

View File

@@ -23,5 +23,10 @@ See the [global flags page](/flags/) for global options not listed here.
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone test](/commands/rclone_test/) - Run a test command * [rclone test](/commands/rclone_test/) - Run a test command
<!-- markdownlint-restore -->

View File

@@ -16,7 +16,6 @@ in filenames in the remote:path specified.
The data doesn't contain any identifying information but is useful for The data doesn't contain any identifying information but is useful for
the rclone developers when developing filename compression. the rclone developers when developing filename compression.
``` ```
rclone test histogram [remote:path] [flags] rclone test histogram [remote:path] [flags]
``` ```
@@ -31,5 +30,10 @@ See the [global flags page](/flags/) for global options not listed here.
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone test](/commands/rclone_test/) - Run a test command * [rclone test](/commands/rclone_test/) - Run a test command
<!-- markdownlint-restore -->

View File

@@ -15,8 +15,7 @@ paths passed in and how long they can be. It can take some time. It will
write test files into the remote:path passed in. It outputs a bit of go write test files into the remote:path passed in. It outputs a bit of go
code for each one. code for each one.
**NB** this can create undeletable files and other hazards - use with care **NB** this can create undeletable files and other hazards - use with care!
``` ```
rclone test info [remote:path]+ [flags] rclone test info [remote:path]+ [flags]
@@ -41,5 +40,10 @@ See the [global flags page](/flags/) for global options not listed here.
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone test](/commands/rclone_test/) - Run a test command * [rclone test](/commands/rclone_test/) - Run a test command
<!-- markdownlint-restore -->

View File

@@ -28,5 +28,10 @@ See the [global flags page](/flags/) for global options not listed here.
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone test](/commands/rclone_test/) - Run a test command * [rclone test](/commands/rclone_test/) - Run a test command
<!-- markdownlint-restore -->

View File

@@ -36,5 +36,10 @@ See the [global flags page](/flags/) for global options not listed here.
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone test](/commands/rclone_test/) - Run a test command * [rclone test](/commands/rclone_test/) - Run a test command
<!-- markdownlint-restore -->

View File

@@ -22,5 +22,10 @@ See the [global flags page](/flags/) for global options not listed here.
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone test](/commands/rclone_test/) - Run a test command * [rclone test](/commands/rclone_test/) - Run a test command
<!-- markdownlint-restore -->

View File

@@ -31,7 +31,6 @@ time instead of the current time. Times may be specified as one of:
Note that value of `--timestamp` is in UTC. If you want local time Note that value of `--timestamp` is in UTC. If you want local time
then add the `--localtime` flag. then add the `--localtime` flag.
``` ```
rclone touch remote:path [flags] rclone touch remote:path [flags]
``` ```
@@ -53,7 +52,7 @@ See the [global flags page](/flags/) for global options not listed here.
Important flags useful for most commands Important flags useful for most commands
``` ```text
-n, --dry-run Do a trial run with no permanent changes -n, --dry-run Do a trial run with no permanent changes
-i, --interactive Enable interactive mode -i, --interactive Enable interactive mode
-v, --verbose count Print lots more stuff (repeat for more) -v, --verbose count Print lots more stuff (repeat for more)
@@ -63,7 +62,7 @@ Important flags useful for most commands
Flags for filtering directory listings Flags for filtering directory listings
``` ```text
--delete-excluded Delete files on dest excluded from sync --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern --exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin) --exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
@@ -93,12 +92,17 @@ Flags for filtering directory listings
Flags for listing directories Flags for listing directories
``` ```text
--default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z) --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
--fast-list Use recursive list if available; uses more memory but fewer transactions --fast-list Use recursive list if available; uses more memory but fewer transactions
``` ```
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends. * [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends.
<!-- markdownlint-restore -->

View File

@@ -14,16 +14,18 @@ Lists the contents of a remote in a similar way to the unix tree command.
For example For example
$ rclone tree remote:path ```text
/ $ rclone tree remote:path
├── file1 /
├── file2 ├── file1
├── file3 ├── file2
└── subdir ├── file3
├── file4 └── subdir
── file5 ── file4
└── file5
1 directories, 5 files 1 directories, 5 files
```
You can use any of the filtering options with the tree command (e.g. You can use any of the filtering options with the tree command (e.g.
`--include` and `--exclude`. You can also use `--fast-list`. `--include` and `--exclude`. You can also use `--fast-list`.
@@ -36,7 +38,6 @@ short options as they conflict with rclone's short options.
For a more interactive navigation of the remote see the For a more interactive navigation of the remote see the
[ncdu](/commands/rclone_ncdu/) command. [ncdu](/commands/rclone_ncdu/) command.
``` ```
rclone tree remote:path [flags] rclone tree remote:path [flags]
``` ```
@@ -72,7 +73,7 @@ See the [global flags page](/flags/) for global options not listed here.
Flags for filtering directory listings Flags for filtering directory listings
``` ```text
--delete-excluded Delete files on dest excluded from sync --delete-excluded Delete files on dest excluded from sync
--exclude stringArray Exclude files matching pattern --exclude stringArray Exclude files matching pattern
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin) --exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
@@ -102,12 +103,17 @@ Flags for filtering directory listings
Flags for listing directories Flags for listing directories
``` ```text
--default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z) --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
--fast-list Use recursive list if available; uses more memory but fewer transactions --fast-list Use recursive list if available; uses more memory but fewer transactions
``` ```
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends. * [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends.
<!-- markdownlint-restore -->

View File

@@ -16,15 +16,17 @@ build tags and the type of executable (static or dynamic).
For example: For example:
$ rclone version ```sh
rclone v1.55.0 $ rclone version
- os/version: ubuntu 18.04 (64 bit) rclone v1.55.0
- os/kernel: 4.15.0-136-generic (x86_64) - os/version: ubuntu 18.04 (64 bit)
- os/type: linux - os/kernel: 4.15.0-136-generic (x86_64)
- os/arch: amd64 - os/type: linux
- go/version: go1.16 - os/arch: amd64
- go/linking: static - go/version: go1.16
- go/tags: none - go/linking: static
- go/tags: none
```
Note: before rclone version 1.55 the os/type and os/arch lines were merged, Note: before rclone version 1.55 the os/type and os/arch lines were merged,
and the "go/version" line was tagged as "go version". and the "go/version" line was tagged as "go version".
@@ -32,25 +34,28 @@ Note: before rclone version 1.55 the os/type and os/arch lines were merged,
If you supply the --check flag, then it will do an online check to If you supply the --check flag, then it will do an online check to
compare your version with the latest release and the latest beta. compare your version with the latest release and the latest beta.
$ rclone version --check ```sh
yours: 1.42.0.6 $ rclone version --check
latest: 1.42 (released 2018-06-16) yours: 1.42.0.6
beta: 1.42.0.5 (released 2018-06-17) latest: 1.42 (released 2018-06-16)
beta: 1.42.0.5 (released 2018-06-17)
```
Or Or
$ rclone version --check ```sh
yours: 1.41 $ rclone version --check
latest: 1.42 (released 2018-06-16) yours: 1.41
upgrade: https://downloads.rclone.org/v1.42 latest: 1.42 (released 2018-06-16)
beta: 1.42.0.5 (released 2018-06-17) upgrade: https://downloads.rclone.org/v1.42
upgrade: https://beta.rclone.org/v1.42-005-g56e1e820 beta: 1.42.0.5 (released 2018-06-17)
upgrade: https://beta.rclone.org/v1.42-005-g56e1e820
```
If you supply the --deps flag then rclone will print a list of all the If you supply the --deps flag then rclone will print a list of all the
packages it depends on and their versions along with some other packages it depends on and their versions along with some other
information about the build. information about the build.
``` ```
rclone version [flags] rclone version [flags]
``` ```
@@ -67,5 +72,10 @@ See the [global flags page](/flags/) for global options not listed here.
## See Also ## See Also
<!-- markdownlint-capture -->
<!-- markdownlint-disable ul-style line-length -->
* [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends. * [rclone](/commands/rclone/) - Show help for rclone commands, flags and backends.
<!-- markdownlint-restore -->

View File

@@ -121,7 +121,7 @@ Flags for general networking and HTTP stuff.
--tpslimit float Limit HTTP transactions per second to this --tpslimit float Limit HTTP transactions per second to this
--tpslimit-burst int Max burst of transactions for --tpslimit (default 1) --tpslimit-burst int Max burst of transactions for --tpslimit (default 1)
--use-cookies Enable session cookiejar --use-cookies Enable session cookiejar
--user-agent string Set the user-agent to a specified string (default "rclone/v1.71.0") --user-agent string Set the user-agent to a specified string (default "rclone/v1.71.1")
``` ```

View File

@@ -1278,14 +1278,18 @@ This takes the following parameters:
Example: Example:
rclone rc mount/mount fs=mydrive: mountPoint=/home/<user>/mountPoint ```sh
rclone rc mount/mount fs=mydrive: mountPoint=/home/<user>/mountPoint mountType=mount rclone rc mount/mount fs=mydrive: mountPoint=/home/<user>/mountPoint
rclone rc mount/mount fs=TestDrive: mountPoint=/mnt/tmp vfsOpt='{"CacheMode": 2}' mountOpt='{"AllowOther": true}' rclone rc mount/mount fs=mydrive: mountPoint=/home/<user>/mountPoint mountType=mount
rclone rc mount/mount fs=TestDrive: mountPoint=/mnt/tmp vfsOpt='{"CacheMode": 2}' mountOpt='{"AllowOther": true}'
```
The vfsOpt are as described in options/get and can be seen in the the The vfsOpt are as described in options/get and can be seen in the the
"vfs" section when running and the mountOpt can be seen in the "mount" section: "vfs" section when running and the mountOpt can be seen in the "mount" section:
rclone rc options/get ```sh
rclone rc options/get
```
**Authentication is required for this call.** **Authentication is required for this call.**
@@ -1728,8 +1732,6 @@ This takes the following parameters:
- fs - a remote name string e.g. "drive:" - fs - a remote name string e.g. "drive:"
- remote - a path within that remote e.g. "dir" - remote - a path within that remote e.g. "dir"
See the [settierfile](/commands/rclone_settierfile/) command for more information on the above.
**Authentication is required for this call.** **Authentication is required for this call.**
### operations/size: Count the number of bytes and files in remote {#operations-size} ### operations/size: Count the number of bytes and files in remote {#operations-size}
@@ -1775,8 +1777,6 @@ This takes the following parameters:
- remote - a path within that remote e.g. "dir" - remote - a path within that remote e.g. "dir"
- each part in body represents a file to be uploaded - each part in body represents a file to be uploaded
See the [uploadfile](/commands/rclone_uploadfile/) command for more information on the above.
**Authentication is required for this call.** **Authentication is required for this call.**
### options/blocks: List all the option blocks {#options-blocks} ### options/blocks: List all the option blocks {#options-blocks}

View File

@@ -7,7 +7,7 @@
| `--name-transform suffix_keep_extension=XXXX` | Appends XXXX to the file name while preserving the original file extension. | | `--name-transform suffix_keep_extension=XXXX` | Appends XXXX to the file name while preserving the original file extension. |
| `--name-transform trimprefix=XXXX` | Removes XXXX if it appears at the start of the file name. | | `--name-transform trimprefix=XXXX` | Removes XXXX if it appears at the start of the file name. |
| `--name-transform trimsuffix=XXXX` | Removes XXXX if it appears at the end of the file name. | | `--name-transform trimsuffix=XXXX` | Removes XXXX if it appears at the end of the file name. |
| `--name-transform regex=/pattern/replacement/` | Applies a regex-based transformation. | | `--name-transform regex=pattern/replacement` | Applies a regex-based transformation. |
| `--name-transform replace=old:new` | Replaces occurrences of old with new in the file name. | | `--name-transform replace=old:new` | Replaces occurrences of old with new in the file name. |
| `--name-transform date={YYYYMMDD}` | Appends or prefixes the specified date format. | | `--name-transform date={YYYYMMDD}` | Appends or prefixes the specified date format. |
| `--name-transform truncate=N` | Truncates the file name to a maximum of N characters. | | `--name-transform truncate=N` | Truncates the file name to a maximum of N characters. |
@@ -218,12 +218,12 @@ rclone convmv "stories/The Quick Brown Fox!.txt" --name-transform "all,command=e
```sh ```sh
rclone convmv "stories/The Quick Brown Fox!" --name-transform "date=-{YYYYMMDD}" rclone convmv "stories/The Quick Brown Fox!" --name-transform "date=-{YYYYMMDD}"
// Output: stories/The Quick Brown Fox!-20250830 // Output: stories/The Quick Brown Fox!-20250924
``` ```
```sh ```sh
rclone convmv "stories/The Quick Brown Fox!" --name-transform "date=-{macfriendlytime}" rclone convmv "stories/The Quick Brown Fox!" --name-transform "date=-{macfriendlytime}"
// Output: stories/The Quick Brown Fox!-2025-08-30 1234AM // Output: stories/The Quick Brown Fox!-2025-09-24 0423PM
``` ```
```sh ```sh

2106
rclone.1 generated

File diff suppressed because it is too large Load Diff