SFTP

SFTP 登陆主机和 SSH 一样,也是用 用户名@主机名的方式连接

1
2
3
$ sftp root@localhost
root@localhost's password: # 输入密码
sftp> exit # 输入FTP 相关命令

进入主机后,就与一般 FTP 模式下操作方式一样了!下面是具体可用命令:

远程服务器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# 切换某个目录
$ cd PATH

# 列出当前目录文件名
$ ls

# 建立目录
$ mkdir DIR

# 删除目录
$ rmdir DIR

# 显示当前目录
$ pwd

# 更改文件或目录的属组
$ chgrp groupname PATH

# 更改文件或目录的属主
$ chown username PATH

# 更改文件或目录的权限
$ chmod 664 PATH

# 建立连接文件
$ ln oldname newname

# 删除文件或目录
$ rm PATH

# 更改文件或目录名称
$ rename oldname newname

# 离开远程主机
$ exit | bye | quit

本机

都在普通命令前加上l(L的小写)

1
2
3
4
5
6
7
8
9
10
11
12
# 切换某个目录
$ lcd PATH

# 列出当前目录文件名
$ lls

# 建立目录
$ lmkdir DIR


# 显示当前目录
$ lpwd

上传下载操作

1
2
3
4
5
6
7
8
9
10
11
# 将文件由本机上传到远程主机
$ put [本机目录或文件] [远程]
$ put [本机目录或文件]
# 如果用第二种格式,则文件会上传到远程主机当前目录下

# 将文件由远程主机下载到本地
$ get [远程目录或文件] [本地]
$ get [远程目录或文件]
# 如果用第二种格式,则文件会下载到本地当前目录下

put 和 get 都可以使用通配符 如: get * ,put *.pem

就整体而言,如果不考虑图形接口,SFTP 在 Linux 中完全可以取代 FTP 了,因为所有功能都已经涵盖

文件异地直接复制: SCP

通常使用 SFTP 是因为可能还不知道服务器上面存在文件的信息,如果已经知道服务器上的文件名和地址,那么最简单的文件传输方式 SCP 指令

1
2
3
4
5
6
7
$ scp [-pr] [-l 速率] file [账号@]主机:目录名 # 上传
$ scp [-pr] [-l 速率] [账号@主机]:file 目录名 # 下载

# 参数
-p : 保留文件原有的权限信息
-r : 复制来源为目录时,可以复制整个目录(包含子目录)
-l : 可以限制传输的速率,单位为 Kbits/s , 例如 [-l 800 ] 代表传输速率 100Kbytes/s
03-16 12:44