Variable: tramp-methods
tramp-methods is a variable defined in tramp.el.gz.
Value
Large value
(("mock" (tramp-login-program "sh") (tramp-login-args (("-i")))
(tramp-direct-async ("-c")) (tramp-remote-shell "/bin/sh")
(tramp-remote-shell-args ("-c")) (tramp-connection-timeout 10))
("adb" (tramp-login-program "adb")
(tramp-login-args (("-s" "%d") ("shell"))) (tramp-direct-async t)
(tramp-tmpdir "/data/local/tmp") (tramp-default-port 5555))
("kubernetes" (tramp-login-program "kubectl")
(tramp-login-args
(("%x") ("exec") ("-c" "%a") ("%h") ("-it") ("--") ("%l")))
(tramp-direct-async ("/bin/sh" "-c")) (tramp-remote-shell "/bin/sh")
(tramp-remote-shell-login ("-l"))
(tramp-remote-shell-args ("-i" "-c"))
(tramp-completion-use-cache nil))
("podmancp" (tramp-login-program "podman")
(tramp-login-args
(("exec") ("-it") ("-u" "%u") ("-e" "TERM=dumb") ("%h") ("%l")))
(tramp-direct-async ("/bin/sh" "-c")) (tramp-remote-shell "/bin/sh")
(tramp-remote-shell-login ("-l"))
(tramp-remote-shell-args ("-i" "-c")) (tramp-copy-program "podman")
(tramp-copy-args (("cp")))
(tramp-copy-file-name (("%h" ":") ("%f"))) (tramp-copy-recursive t)
(tramp-completion-use-cache nil))
("podman" (tramp-login-program "podman")
(tramp-login-args
(("exec") ("-it") ("-u" "%u") ("-e" "TERM=dumb") ("%h") ("%l")))
(tramp-direct-async ("/bin/sh" "-c")) (tramp-remote-shell "/bin/sh")
(tramp-remote-shell-login ("-l"))
(tramp-remote-shell-args ("-i" "-c"))
(tramp-completion-use-cache nil))
("dockercp" (tramp-login-program "docker")
(tramp-login-args
(("exec") ("-it") ("-u" "%u") ("-e" "TERM=dumb") ("%h") ("%l")))
(tramp-direct-async ("/bin/sh" "-c")) (tramp-remote-shell "/bin/sh")
(tramp-remote-shell-login ("-l"))
(tramp-remote-shell-args ("-i" "-c")) (tramp-copy-program "docker")
(tramp-copy-args (("cp")))
(tramp-copy-file-name (("%h" ":") ("%f"))) (tramp-copy-recursive t)
(tramp-completion-use-cache nil))
("docker" (tramp-login-program "docker")
(tramp-login-args
(("exec") ("-it") ("-u" "%u") ("-e" "TERM=dumb") ("%h") ("%l")))
(tramp-direct-async ("/bin/sh" "-c")) (tramp-remote-shell "/bin/sh")
(tramp-remote-shell-login ("-l"))
(tramp-remote-shell-args ("-i" "-c"))
(tramp-completion-use-cache nil))
("ftp")
("rclone"
(tramp-mount-args
("--no-unicode-normalization" "--dir-cache-time" "0s"))
(tramp-copyto-args nil) (tramp-moveto-args nil)
(tramp-about-args ("--full")))
("psftp" (tramp-login-program "plink")
(tramp-login-args
(("-l" "%u") ("-P" "%p") ("-ssh") ("%c") ("-t") ("%h") ("\"")
("env 'TERM=dumb' 'PROMPT_COMMAND=' 'PS1=#$ '") ("%l") ("\"")))
(tramp-remote-shell "/bin/sh") (tramp-remote-shell-login ("-l"))
(tramp-remote-shell-args ("-c")) (tramp-copy-program "pscp")
(tramp-copy-args
(("-l" "%u") ("-P" "%p") ("-sftp") ("%c") ("-p" "%k")))
(tramp-copy-keep-date t))
("pscp" (tramp-login-program "plink")
(tramp-login-args
(("-l" "%u") ("-P" "%p") ("-ssh") ("%c") ("-t") ("%h") ("\"")
("env 'TERM=dumb' 'PROMPT_COMMAND=' 'PS1=#$ '") ("%l") ("\"")))
(tramp-remote-shell "/bin/sh") (tramp-remote-shell-login ("-l"))
(tramp-remote-shell-args ("-c")) (tramp-copy-program "pscp")
(tramp-copy-args
(("-l" "%u") ("-P" "%p") ("-scp") ("%c") ("-p" "%k") ("-q") ("-r")))
(tramp-copy-keep-date t) (tramp-copy-recursive t))
("plinkx" (tramp-login-program "plink")
(tramp-login-args
(("-load") ("%h") ("%c") ("-t") ("\"")
("env 'TERM=dumb' 'PROMPT_COMMAND=' 'PS1=#$ '") ("%l") ("\"")))
(tramp-remote-shell "/bin/sh") (tramp-remote-shell-login ("-l"))
(tramp-remote-shell-args ("-c")))
("plink" (tramp-login-program "plink")
(tramp-login-args
(("-l" "%u") ("-P" "%p") ("-ssh") ("%c") ("-t") ("%h") ("\"")
("env 'TERM=dumb' 'PROMPT_COMMAND=' 'PS1=#$ '") ("%l") ("\"")))
(tramp-remote-shell "/bin/sh") (tramp-remote-shell-login ("-l"))
(tramp-remote-shell-args ("-c")))
("doas" (tramp-login-program "doas")
(tramp-login-args (("-u" "%u") ("-s")))
(tramp-remote-shell "/bin/sh") (tramp-remote-shell-args ("-c"))
(tramp-connection-timeout 10) (tramp-session-timeout 300)
(tramp-password-previous-hop t))
("sudo" (tramp-login-program "env")
(tramp-login-args
(("SUDO_PROMPT=P\"\"a\"\"s\"\"s\"\"w\"\"o\"\"r\"\"d\"\":")
("TERM=dumb") ("sudo") ("-u" "%u") ("-s") ("-H") ("%l")))
(tramp-remote-shell "/bin/sh") (tramp-remote-shell-login ("-l"))
(tramp-remote-shell-args ("-c")) (tramp-connection-timeout 10)
(tramp-session-timeout 300) (tramp-password-previous-hop t))
("sg" (tramp-login-program "sg") (tramp-login-args (("-") ("%u")))
(tramp-direct-async ("-c")) (tramp-remote-shell "/bin/sh")
(tramp-remote-shell-args ("-c")) (tramp-connection-timeout 10))
("su" (tramp-login-program "su") (tramp-login-args (("-") ("%u")))
(tramp-remote-shell "/bin/sh") (tramp-remote-shell-login ("-l"))
(tramp-remote-shell-args ("-c")) (tramp-connection-timeout 10))
("telnet" (tramp-login-program "telnet")
(tramp-login-args (("%h") ("%p") ("%n")))
(tramp-remote-shell "/bin/sh") (tramp-remote-shell-login ("-l"))
(tramp-remote-shell-args ("-c")))
("sshx" (tramp-login-program "ssh")
(tramp-login-args
(("-l" "%u") ("-p" "%p") ("%c") ("-e" "none") ("-t" "-t")
("-o" "SetEnv=\"TERM=dumb\"") ("-o" "RemoteCommand=\"%l\"") ("%h")))
(tramp-async-args (("-q"))) (tramp-remote-shell "/bin/sh")
(tramp-remote-shell-login ("-l")) (tramp-remote-shell-args ("-c")))
("ssh" (tramp-login-program "ssh")
(tramp-login-args
(("-l" "%u") ("-p" "%p") ("%c") ("-e" "none")
("-o" "SetEnv=\"TERM=dumb\"") ("%h")))
(tramp-async-args (("-q"))) (tramp-direct-async ("-t" "-t"))
(tramp-remote-shell "/bin/sh") (tramp-remote-shell-login ("-l"))
(tramp-remote-shell-args ("-c")))
("remsh" (tramp-login-program "remsh")
(tramp-login-args (("%h") ("-l" "%u")))
(tramp-remote-shell "/bin/sh") (tramp-remote-shell-login ("-l"))
(tramp-remote-shell-args ("-c")))
("rsh" (tramp-login-program "rsh")
(tramp-login-args (("%h") ("-l" "%u")))
(tramp-remote-shell "/bin/sh") (tramp-remote-shell-login ("-l"))
(tramp-remote-shell-args ("-c")))
("rsync" (tramp-login-program "ssh")
(tramp-login-args
(("-l" "%u") ("-p" "%p") ("%c") ("-e" "none")
("-o" "SetEnv=\"TERM=dumb\"") ("%h")))
(tramp-async-args (("-q"))) (tramp-direct-async ("-t" "-t"))
(tramp-remote-shell "/bin/sh") (tramp-remote-shell-login ("-l"))
(tramp-remote-shell-args ("-c")) (tramp-copy-program "rsync")
(tramp-copy-args (("-t" "%k") ("-p") ("-r") ("-s") ("-c")))
(tramp-copy-env (("RSYNC_RSH") ("ssh") ("%c")))
(tramp-copy-keep-date t) (tramp-copy-keep-tmpfile t)
(tramp-copy-recursive t))
("scpx" (tramp-login-program "ssh")
(tramp-login-args
(("-l" "%u") ("-p" "%p") ("%c") ("-e" "none") ("-t" "-t")
("-o" "RemoteCommand=\"%l\"") ("-o" "SetEnv=\"TERM=dumb\"") ("%h")))
(tramp-async-args (("-q"))) (tramp-remote-shell "/bin/sh")
(tramp-remote-shell-login ("-l")) (tramp-remote-shell-args ("-c"))
(tramp-copy-program "scp")
(tramp-copy-args
(("-P" "%p") ("-p" "%k") ("%x") ("%y") ("%z") ("-q") ("-r") ("%c")))
(tramp-copy-keep-date t) (tramp-copy-recursive t))
("scp" (tramp-login-program "ssh")
(tramp-login-args
(("-l" "%u") ("-p" "%p") ("%c") ("-e" "none")
("-o" "SetEnv=\"TERM=dumb\"") ("%h")))
(tramp-async-args (("-q"))) (tramp-direct-async ("-t" "-t"))
(tramp-remote-shell "/bin/sh") (tramp-remote-shell-login ("-l"))
(tramp-remote-shell-args ("-c")) (tramp-copy-program "scp")
(tramp-copy-args
(("-P" "%p") ("-p" "%k") ("%x") ("%y") ("%z") ("-q") ("-r") ("%c")))
(tramp-copy-keep-date t) (tramp-copy-recursive t))
("remcp" (tramp-login-program "remsh")
(tramp-login-args (("%h") ("-l" "%u")))
(tramp-remote-shell "/bin/sh") (tramp-remote-shell-login ("-l"))
(tramp-remote-shell-args ("-c")) (tramp-copy-program "rcp")
(tramp-copy-args (("-p" "%k"))) (tramp-copy-keep-date t))
("rcp" (tramp-login-program "rsh")
(tramp-login-args (("%h") ("-l" "%u")))
(tramp-remote-shell "/bin/sh") (tramp-remote-shell-login ("-l"))
(tramp-remote-shell-args ("-c")) (tramp-copy-program "rcp")
(tramp-copy-args (("-p" "%k") ("-r"))) (tramp-copy-keep-date t)
(tramp-copy-recursive t))
("smb" (tramp-tmpdir "/C$/Temp") (tramp-case-insensitive t))
("sshfs"
(tramp-mount-args
(("-C") ("-p" "%p") ("-o" "dir_cache=no")
("-o" "transform_symlinks") ("-o" "idmap=user,reconnect")))
(tramp-login-program "ssh")
(tramp-login-args
(("-q") ("-l" "%u") ("-p" "%p") ("-e" "none") ("%a" "%a")
("-o" "SetEnv=\"TERM=dumb\"") ("%h") ("%l")))
(tramp-direct-async t) (tramp-remote-shell "/bin/sh")
(tramp-remote-shell-login ("-l")) (tramp-remote-shell-args ("-c")))
("sudoedit"
(tramp-sudo-login
(("sudo") ("-u" "%u") ("-S") ("-H") ("-p" "Password:") ("--")))
(tramp-password-previous-hop t))
("-"))
Documentation
Alist of methods for remote files.
This is a list of entries of the form (NAME PARAM1 PARAM2 ...). Each NAME stands for a remote access method. Each PARAM is a pair of the form (KEY VALUE). The following KEYs are defined:
* tramp-remote-shell
This specifies the shell to use on the remote host. This
MUST be a Bourne-like shell. It is normally not necessary to
set this to any value other than "/bin/sh": Tramp wants to
use a shell which groks tilde expansion, but it can search
for it. Also note that "/bin/sh" exists on all Unixen
except Android, this might not be true for the value that you
decide to use. You Have Been Warned.
* tramp-remote-shell-login
This specifies the arguments to let tramp-remote-shell run
as a login shell. It defaults to ("-l"), but some shells,
like ksh, require another argument. See
tramp-connection-properties for a way to overwrite the
default value.
* tramp-remote-shell-args
For implementation of shell-command, this specifies the
arguments to let tramp-remote-shell run a single command.
* tramp-login-program
This specifies the name of the program to use for logging in to the
remote host. This may be the name of rsh or a workalike program,
or the name of telnet or a workalike, or the name of su or a workalike.
* tramp-login-args
This specifies a list of lists of arguments to pass to the
above mentioned program. You normally want to put each
argument in an individual string, i.e.
("-a" "-b") rather than ("-a -b").
"%" followed by a letter are expanded in the arguments as
follows:
- "%h" is replaced by the host name.
- "%u" is replaced by the user name.
- "%p" is replaced by the port number.
- "%%" can be used to obtain a literal percent character.
If a sub-list containing "%h", "%u" or "%p" is
unchanged after expansion (i.e. no host, no user or no port
were specified), that sublist is not used. For e.g.
'(("-a" "-b") ("-l" "%u"))
that means that ("-l" "%u") is used only if the user was
specified, and it is thus effectively optional.
Other expansions are:
- "%l" is replaced by the login shell tramp-remote-shell
and its parameters.
- "%t" is replaced by the temporary file name produced with
tramp-make-tramp-temp-file.
- "%k" indicates the keep-date parameter of a program, if exists.
- "%c" adds additional tramp-ssh-controlmaster-options
options for the first hop.
- "%n" expands to "2>/dev/null".
- "%x" is replaced by the tramp-scp-strict-file-name-checking(var)/tramp-scp-strict-file-name-checking(fun)
argument if it is supported.
- "%y" is replaced by the tramp-scp-force-scp-protocol(var)/tramp-scp-force-scp-protocol(fun)
argument if it is supported.
- "%z" is replaced by the tramp-scp-direct-remote-copying
argument if it is supported.
- "%d" is replaced by the device detected by tramp-adb-get-device.
- "%a" adds the pseudo-terminal allocation argument "-t" in
asynchronous processes, if the connection type is not pipe.
The existence of tramp-login-args, combined with the
absence of tramp-copy-args, is an indication that the
method is capable of multi-hops.
* tramp-async-args
When an asynchronous process is started, we know already that
the connection works. Therefore, we can pass additional
parameters to suppress diagnostic messages, in order not to
tamper the process output.
* tramp-direct-async
Whether the method supports direct asynchronous processes.
Until now, just "ssh"-based, "sshfs"-based, "adb"-based
and container methods do. If it is a list of strings, they
are used to construct the remote command.
* tramp-copy-program
This specifies the name of the program to use for remotely copying
the file; this might be the absolute filename of scp or the name of
a workalike program. It is always applied on the local host.
* tramp-copy-args
This specifies the list of parameters to pass to the above mentioned
program, the hints for tramp-login-args also apply here.
* tramp-copy-file-name
The remote source or destination file name for out-of-band methods.
You can use "%u" and "%h" like in tramp-login-args.
Additionally, "%f" denotes the local file name part. This list
will be expanded to a string without spaces between the elements of
the list.
The default value is tramp-default-copy-file-name.
* tramp-copy-env
A list of environment variables and their values, which will
be set when calling tramp-copy-program.
* tramp-remote-copy-program
The listener program to be applied on remote side, if needed.
* tramp-remote-copy-args
The list of parameters to pass to the listener program, the hints
for tramp-login-args also apply here. Additionally, "%r" could
be used here and in tramp-copy-args. It denotes a randomly
chosen port for the remote listener.
* tramp-copy-keep-date
This specifies whether the copying program preserves the timestamp
of the original file.
* tramp-copy-keep-tmpfile
This specifies whether a temporary local file shall be kept
for optimization reasons (useful for "rsync" methods).
* tramp-copy-recursive
Whether the operation copies directories recursively.
* tramp-default-port
The default port of a method.
* tramp-tmpdir
A directory on the remote host for temporary files. If not
specified, "/tmp" is taken as default.
* tramp-connection-timeout
This is the maximum time to be spent for establishing a connection.
In general, the global default value shall be used, but for
some methods, like "doas", "su" or "sudo", a shorter
timeout might be desirable.
* tramp-session-timeout
How long a Tramp connection keeps open before being disconnected.
This is useful for methods like "doas" or "sudo", which
shouldn't run an open connection in the background forever.
* tramp-password-previous-hop
The password for this connection is the same like the
password for the previous hop. If there is no previous hop,
the password of the local user is applied. This is needed
for methods like "doas", "sudo" or "sudoedit".
* tramp-case-insensitive
Whether the remote file system handles file names case insensitive.
Only a non-nil value counts, the default value nil means to
perform further checks on the remote host. See
tramp-connection-properties for a way to overwrite this.
* tramp-mount-args
* tramp-copyto-args
* tramp-moveto-args
* tramp-about-args
These parameters, a list of list like tramp-login-args, are used
for the "rclone" method, and are appended to the respective
"rclone" commands. In general, they shouldn't be changed inside
tramp-methods; it is recommended to change their values via
tramp-connection-properties. Unlike tramp-login-args there is
no pattern replacement.
What does all this mean? Well, you should specify tramp-login-program
for all methods; this program is used to log in to the remote site. Then,
there are two ways to actually transfer the files between the local and the
remote side. One way is using an additional scp-like program. If you want
to do this, set tramp-copy-program in the method.
Another possibility for file transfer is inline transfer, i.e. the
file is passed through the same buffer used by tramp-login-program. In
this case, the file contents need to be protected since the
tramp-login-program might use escape codes or the connection might not
be eight-bit clean. Therefore, file contents are encoded for transit.
See the variables tramp-local-coding-commands and
tramp-remote-coding-commands for details.
So, to summarize: if the method is an out-of-band method, then you
must specify tramp-copy-program and tramp-copy-args. If it is an
inline method, then these two parameters should be nil.
Notes:
All these arguments can be overwritten by connection properties. See Info node (tramp) Predefined connection information.
When using su, surs, sg, sudo, sudors, doas, run0 or ksu
the phrase "open connection to a remote host" sounds strange, but it
is used nevertheless, for consistency. No connection is opened to a
remote host, but the respective command is started on the local host.
You should specify a remote host localhost or the name of the local
host. Another host name is useful only in combination with
tramp-default-proxies-alist.
Source Code
;; Defined in /usr/src/emacs/lisp/net/tramp.el.gz
;;;###tramp-autoload
(defvar tramp-methods nil
"Alist of methods for remote files.
This is a list of entries of the form (NAME PARAM1 PARAM2 ...).
Each NAME stands for a remote access method. Each PARAM is a
pair of the form (KEY VALUE). The following KEYs are defined:
* `tramp-remote-shell'
This specifies the shell to use on the remote host. This
MUST be a Bourne-like shell. It is normally not necessary to
set this to any value other than \"/bin/sh\": Tramp wants to
use a shell which groks tilde expansion, but it can search
for it. Also note that \"/bin/sh\" exists on all Unixen
except Android, this might not be true for the value that you
decide to use. You Have Been Warned.
* `tramp-remote-shell-login'
This specifies the arguments to let `tramp-remote-shell' run
as a login shell. It defaults to (\"-l\"), but some shells,
like ksh, require another argument. See
`tramp-connection-properties' for a way to overwrite the
default value.
* `tramp-remote-shell-args'
For implementation of `shell-command', this specifies the
arguments to let `tramp-remote-shell' run a single command.
* `tramp-login-program'
This specifies the name of the program to use for logging in to the
remote host. This may be the name of rsh or a workalike program,
or the name of telnet or a workalike, or the name of su or a workalike.
* `tramp-login-args'
This specifies a list of lists of arguments to pass to the
above mentioned program. You normally want to put each
argument in an individual string, i.e.
(\"-a\" \"-b\") rather than (\"-a -b\").
\"%\" followed by a letter are expanded in the arguments as
follows:
- \"%h\" is replaced by the host name.
- \"%u\" is replaced by the user name.
- \"%p\" is replaced by the port number.
- \"%%\" can be used to obtain a literal percent character.
If a sub-list containing \"%h\", \"%u\" or \"%p\" is
unchanged after expansion (i.e. no host, no user or no port
were specified), that sublist is not used. For e.g.
\\='((\"-a\" \"-b\") (\"-l\" \"%u\"))
that means that (\"-l\" \"%u\") is used only if the user was
specified, and it is thus effectively optional.
Other expansions are:
- \"%l\" is replaced by the login shell `tramp-remote-shell'
and its parameters.
- \"%t\" is replaced by the temporary file name produced with
`tramp-make-tramp-temp-file'.
- \"%k\" indicates the keep-date parameter of a program, if exists.
- \"%c\" adds additional `tramp-ssh-controlmaster-options'
options for the first hop.
- \"%n\" expands to \"2>/dev/null\".
- \"%x\" is replaced by the `tramp-scp-strict-file-name-checking'
argument if it is supported.
- \"%y\" is replaced by the `tramp-scp-force-scp-protocol'
argument if it is supported.
- \"%z\" is replaced by the `tramp-scp-direct-remote-copying'
argument if it is supported.
- \"%d\" is replaced by the device detected by `tramp-adb-get-device'.
- \"%a\" adds the pseudo-terminal allocation argument \"-t\" in
asynchronous processes, if the connection type is not `pipe'.
The existence of `tramp-login-args', combined with the
absence of `tramp-copy-args', is an indication that the
method is capable of multi-hops.
* `tramp-async-args'
When an asynchronous process is started, we know already that
the connection works. Therefore, we can pass additional
parameters to suppress diagnostic messages, in order not to
tamper the process output.
* `tramp-direct-async'
Whether the method supports direct asynchronous processes.
Until now, just \"ssh\"-based, \"sshfs\"-based, \"adb\"-based
and container methods do. If it is a list of strings, they
are used to construct the remote command.
* `tramp-copy-program'
This specifies the name of the program to use for remotely copying
the file; this might be the absolute filename of scp or the name of
a workalike program. It is always applied on the local host.
* `tramp-copy-args'
This specifies the list of parameters to pass to the above mentioned
program, the hints for `tramp-login-args' also apply here.
* `tramp-copy-file-name'
The remote source or destination file name for out-of-band methods.
You can use \"%u\" and \"%h\" like in `tramp-login-args'.
Additionally, \"%f\" denotes the local file name part. This list
will be expanded to a string without spaces between the elements of
the list.
The default value is `tramp-default-copy-file-name'.
* `tramp-copy-env'
A list of environment variables and their values, which will
be set when calling `tramp-copy-program'.
* `tramp-remote-copy-program'
The listener program to be applied on remote side, if needed.
* `tramp-remote-copy-args'
The list of parameters to pass to the listener program, the hints
for `tramp-login-args' also apply here. Additionally, \"%r\" could
be used here and in `tramp-copy-args'. It denotes a randomly
chosen port for the remote listener.
* `tramp-copy-keep-date'
This specifies whether the copying program preserves the timestamp
of the original file.
* `tramp-copy-keep-tmpfile'
This specifies whether a temporary local file shall be kept
for optimization reasons (useful for \"rsync\" methods).
* `tramp-copy-recursive'
Whether the operation copies directories recursively.
* `tramp-default-port'
The default port of a method.
* `tramp-tmpdir'
A directory on the remote host for temporary files. If not
specified, \"/tmp\" is taken as default.
* `tramp-connection-timeout'
This is the maximum time to be spent for establishing a connection.
In general, the global default value shall be used, but for
some methods, like \"doas\", \"su\" or \"sudo\", a shorter
timeout might be desirable.
* `tramp-session-timeout'
How long a Tramp connection keeps open before being disconnected.
This is useful for methods like \"doas\" or \"sudo\", which
shouldn't run an open connection in the background forever.
* `tramp-password-previous-hop'
The password for this connection is the same like the
password for the previous hop. If there is no previous hop,
the password of the local user is applied. This is needed
for methods like \"doas\", \"sudo\" or \"sudoedit\".
* `tramp-case-insensitive'
Whether the remote file system handles file names case insensitive.
Only a non-nil value counts, the default value nil means to
perform further checks on the remote host. See
`tramp-connection-properties' for a way to overwrite this.
* `tramp-mount-args'
* `tramp-copyto-args'
* `tramp-moveto-args'
* `tramp-about-args'
These parameters, a list of list like `tramp-login-args', are used
for the \"rclone\" method, and are appended to the respective
\"rclone\" commands. In general, they shouldn't be changed inside
`tramp-methods'; it is recommended to change their values via
`tramp-connection-properties'. Unlike `tramp-login-args' there is
no pattern replacement.
What does all this mean? Well, you should specify `tramp-login-program'
for all methods; this program is used to log in to the remote site. Then,
there are two ways to actually transfer the files between the local and the
remote side. One way is using an additional scp-like program. If you want
to do this, set `tramp-copy-program' in the method.
Another possibility for file transfer is inline transfer, i.e. the
file is passed through the same buffer used by `tramp-login-program'. In
this case, the file contents need to be protected since the
`tramp-login-program' might use escape codes or the connection might not
be eight-bit clean. Therefore, file contents are encoded for transit.
See the variables `tramp-local-coding-commands' and
`tramp-remote-coding-commands' for details.
So, to summarize: if the method is an out-of-band method, then you
must specify `tramp-copy-program' and `tramp-copy-args'. If it is an
inline method, then these two parameters should be nil.
Notes:
All these arguments can be overwritten by connection properties.
See Info node `(tramp) Predefined connection information'.
When using `su', `surs', `sg', `sudo', `sudors', `doas', `run0' or `ksu'
the phrase \"open connection to a remote host\" sounds strange, but it
is used nevertheless, for consistency. No connection is opened to a
remote host, but the respective command is started on the local host.
You should specify a remote host `localhost' or the name of the local
host. Another host name is useful only in combination with
`tramp-default-proxies-alist'.")