如何使用 SFTP 连接

连接:
sftp username@remote_hostname_or_IP
指定端口:
sftp -P 10086 username@remote_hostname_or_IP

在 SFTP 命令行中查看帮助文档

帮助:
help
?

SFTP Shell 基本操作

当前工作目录:
pwd

查看当前目录下文件:
ls
ls -la

切换目录:
cd

本地工作目录:
lpwd

查看本地工作目录下的文件:
lls

切换本地工作目录:
lcd dirname

使用 SFTP 传输文件

下载远程文件到本地主机:

get remote_file_name

重命名:
get remote_file_name local_file_name

递归:
get -r some_directory_name

保持文件属性和日期:
get -Pr some_directory_name

上传本地文件到远程主机

put localFile

递归:
put -r local_directory_name

在目前发布的 Ubuntu 系统(至少是 14.04-15.10 )上运行的 OpenSSH 版本有一个 BUG ,执行以上命令会报错。使用有BUG 的 OpenSSH 时,在执行上述命令传输文件到服务器上时,会报这样的错:

Couldn't canonicalise: No such file or directory

要解决这个问题,可以输入:

mkdir local_directory_name

在远程系统上先新建目标目录。这样之后,执行上面的命令应该就不会报错了。

磁盘使用情况:
df -h

本地磁盘使用情况:
!
df -h
exit

使用 SFTP 进行简单的文件操作

更改远程系统上的文件所有者:
chown userID file

和系统chmod命令不同,这个 SFTP 命令不接受用户名,取而代之的是用户的 UID。

查看UID:
get /etc/passwd
!less passwd

然后是更改文件属组。

更改文件属组:
chgrp groupID file
get /etc/group
!less group

先这样吧。

退出

exit
bye