Linux and Unix sftp command
Quick links
About sftp
Syntax
Examples
Related commands
Linux and Unix main page
Secure file transfer program.
sftp [-1Cv] [-B buffer_size] [-b batchfile] [-F ssh_config] [-o ssh_option] [-P sftp_server_path] [-R num_requests] [-S program] [-s subsystem | sftp_server] host
sftp [[user@]host[:file [file]]]
sftp [[user@]host[:dir[/]]]
sftp -b batchfile [user@]host
| -1 | Specify the use of protocol version 1. |
| -B buffer_size | Specify the size of the buffer that sftp uses when transferring files. Larger buffers require fewer round trips at the cost of higher memory consumption. The default is 32768 bytes. |
| -b batchfile | Batch mode reads a series of commands from an input batchfile instead of stdin. Since it lacks user interaction it should be used in conjunction with non-interactive authentication. A batchfile of '-' may be used to indicate standard input. sftp will abort if any of the following commands fail: get, put, rename, ln, rm, mkdir, chdir, ls, lchdir, chmod, chown, chgrp, lpwd and lmkdir. Termination on error can be suppressed on a command by command basis by prefixing the command with a '-' character (for example, -rm /tmp/blah*). |
| -C | Enables compression (via ssh's -C flag). |
| -F ssh_config | Specifies an alternative per-user configuration file for ssh(1). This option is directly passed to ssh(1). |
| -o ssh_option | Can be used to pass options to ssh in the format used in ssh_config(5). This is useful for specifying options for which there is no separate sftp command-line flag. For example, to specify an alternate port use: sftp -oPort=24. For full details of the options listed below, and their possible values, see ssh_config(5). AddressFamily |
| -P sftp_server_path | Connect directly to a local sftp server (rather than via ssh) This option may be useful in debugging the client and server. |
| -R num_requests | Specify how many requests may be outstanding at any one time. Increasing this may slightly improve file transfer speed but will increase memory usage. The default is 16 outstanding requests. |
| -S program | Name of the program to use for the encrypted connection. The program must understand ssh options. |
| -s subsystem | sftp_server | Specifies the SSH2 subsystem or the path for an sftp server on the remote host. A path is useful for using sftp over protocol version 1, or when the remote sshd(8) does not have an sftp subsystem configured. |
| -v | Raise logging level. This option is also passed to ssh. |
Once in interactive mode, sftp understands a set of commands similar to those of ftp. Commands are case insensitive and pathnames may be enclosed in quotes if they contain spaces.
| bye | Quit sftp. |
| cd path | Change remote directory to path. |
| chgrp grp path | Change group of file path to grp. grp must be a numeric GID. |
| chmod mode path | Change permissions of file path to mode. |
| chown own path | Change owner of file path to own. own must be a numeric UID. |
| exit | Quit sftp. |
| get [flags] remote-path [local-path] | Retrieve the remote-path and store it on the local machine. If the local path name is not specified, it is given the same name it has on the remote machine. If the -P flag is specified, then the file's full permission and access time are copied too. |
| help | Display help text. |
| lcd path | Change local directory to path. |
| lls [ls-options [path]] | Display local directory listing of either path or current directory if path is not specified. |
| lmkdir path | Create local directory specified by path. |
| ln oldpath newpath | Create a symbolic link from oldpath to newpath. |
| lpwd | Print local working directory. |
| ls [flags] [path] | Display remote directory listing of either path or current directory if path is not specified. If the -l flag is specified, then display additional details including permissions and ownership information. |
| lumask umask | Set local umask to umask. |
| mkdir path | Create remote directory specified by path. |
| progress | Toggle display of progress meter. |
| put [flags] local-path [remote-path] | Upload local-path and store it on the remote machine. If the remote path name is not specified, it is given the same name it has on the local machine. If the -P flag is specified, then the file's full permission and access time are copied too. |
| pwd | Display remote working directory. |
| quit | Quit sftp. |
| rename oldpath newpath | Rename remote file from oldpath to newpath. |
| rm path | Delete remote file specified by path. |
| rmdir path | Remove remote directory specified by path. |
| symlink oldpath newpath | Create a symbolic link from oldpath to newpath. |
| version | Display the sftp protocol version. |
| ! command | Execute command in local shell. |
| ! | Escape to local shell. |
| ? | Synonym for help. |
sftp shell.computerhope.com
Typing the above command would connect to a secure connection for transferring files. If the host you're using supports a secure login you would then be connected to the host. Below is an example of what would be seen.
Connecting to shell.computerhope.com...
Password:
sftp>
However, if the host does not support a secure login, it's likely you would receive an error similar to the below example.
Connecting to shell.computerhope.com...
ssh: shell.computerhope.com: Name or service not known
Couldn't read packet: Connection
reset by peer
