首页 sftp 命令
文章
取消

sftp 命令

sftp 是一个与远程主机交换文件的命令,可以上传或下载文件。

连接远程主机

命令形式为:

  • sftp remoteuser@remotehost,登录到远程主机,并切换到 remoteuser 用户的家目录
  • sftp remoteuser@remotehost:remotedir,登录到远程主机,并切换到 remotedir 目录
1
2
3
4
5
6
7
8
9
uphie@node1:~/test$ sftp uphie@node2
The authenticity of host 'node2 (10.211.55.13)' can't be established.
ED25519 key fingerprint is SHA256:R7An8Gx/Z0virTgzcFM2uGVloTZKrMQwWKZ2BPrPhq0.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'node2' (ED25519) to the list of known hosts.
uphie@node2's password:
Connected to node2.
sftp>

登录到远程主机指定目录:

1
2
3
4
5
6
uphie@node1:~/test$ sftp uphie@node2:/root
uphie@node2's password:
Connected to node2.
Changing to: /root
sftp> pwd
Remote working directory: /root

操作

连接好后,查看本地文件和远程文件的命令有的会稍有区别,本地文件操作需要在相应命令前添加 l,如 pwd 要改用 lpwd

查看当前本地目录

1
2
sftp> lpwd
Local working directory: /home/uphie/test

查看当前远程目录

1
2
sftp> pwd
Remote working directory: /home/uphie

查看远程文件

命令形式:

  • ls remotedir,查看远程目录
  • ls remotefile,查看远程文件

可使用命令选项。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
sftp> ls -alh
drwxr-x---    ? 1000     1000         4.0K Mar 16 13:38 .
drwxr-xr-x    ? 0        0            4.0K Feb  7 00:42 ..
-rw-------    ? 1000     1000         697B Mar  8 19:57 .bash_history
-rw-r--r--    ? 1000     1000         220B Jan  7  2022 .bash_logout
-rw-r--r--    ? 1000     1000         3.7K Jan  7  2022 .bashrc
drwx------    ? 1000     1000         4.0K Feb  7 00:43 .cache
drwxrwxr-x    ? 1000     1000         4.0K Mar  3 18:12 .kube
-rw-r--r--    ? 1000     1000         807B Jan  7  2022 .profile
drwx------    ? 1000     1000         4.0K Feb  7 00:43 .ssh
-rw-r--r--    ? 1000     1000           0B Feb  7 00:44 .sudo_as_admin_successful
-rw-r--r--    ? 1000     1000         101M Mar 16 13:38 kafka_2.13-3.4.0.tgz
sftp> ls -alh .kube
drwxrwxr-x    ? 1000     1000         4.0K Mar  3 18:12 .kube/.
drwxr-x---    ? 1000     1000         4.0K Mar 16 13:38 .kube/..
drwxr-x---    ? 1000     1000         4.0K Mar  3 18:12 .kube/cache
-rw-------    ? 1000     1000         5.5K Mar  3 18:09 .kube/config

切换远程目录

命令形式:cd remotedir,切换到远程目录 remotedir

1
2
3
4
5
sftp> pwd
Remote working directory: /home/uphie
sftp> cd .kube
sftp> pwd
Remote working directory: /home/uphie/.kube

文件下载

命令形式:

  • get -r remotedir localdir,下载远程目录 remotedir 到本地 localdir 目录下
  • get remotefile localdir,下载远程文件 remotefile 到本地 localdir 目录下
  • get remotefile localfile,下载远程文件 remotefile 到本地并重命名为 localfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
sftp> get config .
Fetching /home/uphie/.kube/config to ./config
config                                                                                                                                            100% 5636   888.5KB/s   00:00
sftp> lls -alh
total 16K
drwxrwxr-x 2 uphie uphie 4.0K Mar 16 14:39 .
drwxr-x--- 6 uphie uphie 4.0K Mar 16 14:17 ..
-rw-rw-r-- 1 uphie uphie    0 Mar 16 14:17 a.txt
-rw------- 1 uphie uphie 5.6K Mar 16 14:39 config
sftp> get config config2
Fetching /home/uphie/.kube/config to config2
config                                                                                                                                            100% 5636     1.2MB/s   00:00
sftp> lls -alh
total 24K
drwxrwxr-x 2 uphie uphie 4.0K Mar 16 15:01 .
drwxr-x--- 6 uphie uphie 4.0K Mar 16 14:17 ..
-rw-rw-r-- 1 uphie uphie    0 Mar 16 14:17 a.txt
-rw------- 1 uphie uphie 5.6K Mar 16 14:39 config
-rw------- 1 uphie uphie 5.6K Mar 16 15:01 config2

文件上传

命令形式:

  • put localfile remotefile,将本地文件 localfile 上传到远程并重命名为 remotefile
  • put -r localdir remotedir,将本地目录 localdir 上传到远程目录 remotedir
1
2
3
4
5
6
7
8
9
sftp> put a.txt A.txt
Uploading a.txt to /home/uphie/.kube/A.txt
a.txt                                                                                                                                             100%    0     0.0KB/s   00:00
sftp> ls -alh
drwxrwxr-x    ? 1000     1000         4.0K Mar 16 15:05 .
drwxr-x---    ? 1000     1000         4.0K Mar 16 13:38 ..
-rw-rw-r--    ? 1000     1000           0B Mar 16 15:05 A.txt
drwxr-x---    ? 1000     1000         4.0K Mar  3 18:12 cache
-rw-------    ? 1000     1000         5.5K Mar  3 18:09 config

创建远程目录

命令形式:mkdir remotedir

不能创建多级目录。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
sftp> mkdir foodir
sftp> ls -alh
drwxr-x---    ? 1000     1000         4.0K Mar 16 15:32 .
drwxr-xr-x    ? 0        0            4.0K Feb  7 00:42 ..
-rw-------    ? 1000     1000         697B Mar  8 19:57 .bash_history
-rw-r--r--    ? 1000     1000         220B Jan  7  2022 .bash_logout
-rw-r--r--    ? 1000     1000         3.7K Jan  7  2022 .bashrc
drwx------    ? 1000     1000         4.0K Feb  7 00:43 .cache
drwxrwxr-x    ? 1000     1000         4.0K Mar 16 15:06 .kube
-rw-r--r--    ? 1000     1000         807B Jan  7  2022 .profile
drwx------    ? 1000     1000         4.0K Feb  7 00:43 .ssh
-rw-r--r--    ? 1000     1000           0B Feb  7 00:44 .sudo_as_admin_successful
drwxrwxr-x    ? 1000     1000         4.0K Mar 16 15:32 foodir
-rw-r--r--    ? 1000     1000         101M Mar 16 13:38 kafka_2.13-3.4.0.tgz

删除远程文件

命令形式:rm remotefile

1
2
3
4
5
6
7
8
9
10
11
12
13
sftp> ls -alh
drwxrwxr-x    ? 1000     1000         4.0K Mar 16 15:05 .
drwxr-x---    ? 1000     1000         4.0K Mar 16 13:38 ..
-rw-rw-r--    ? 1000     1000           0B Mar 16 15:05 A.txt
drwxr-x---    ? 1000     1000         4.0K Mar  3 18:12 cache
-rw-------    ? 1000     1000         5.5K Mar  3 18:09 config
sftp> rm A.txt
Removing /home/uphie/.kube/A.txt
sftp> ls -alh
drwxrwxr-x    ? 1000     1000         4.0K Mar 16 15:06 .
drwxr-x---    ? 1000     1000         4.0K Mar 16 13:38 ..
drwxr-x---    ? 1000     1000         4.0K Mar  3 18:12 cache
-rw-------    ? 1000     1000         5.5K Mar  3 18:09 config

退出

1
sftp> quit
本文由作者按照 CC BY 4.0 进行授权