FTP 诸君大概都用过,SFTP 用过的估计比较少。简单说,它就是 ftp 前加个 secure,通过 ssh 通道在本地及远程服务器间进行文件传输,更为安全。
连接
ssh 的连接通常是这样:
ssh sam@zfanw.com
然后输入密码。
sftp 基本就是把 ssh 换作 sftp:
sftp sam@zfanw.com
如果配置了 ssh 的 config 文件,使用私钥/公钥的形式连接远程服务器,则更简单了:
sftp linode
连接完成后,终端显示:
sftp >
下载文件
ftp 主要的作用就是文件传输,sftp 提供的下载文件命令是 get:
get -r picture
这个命令把 picture 目录下载到本地。
get sam.png
这个命令把 sam.png 图片下载到本地。
本地的哪里??
我们可以借助 lpwd 命令查看本地的当前工作目录 – 就是在 pwd 命令前加个 l 表示 local。可以想知,我们同样可以使用 lcd 来切换本地的工作目录。
上传文件
sftp 提供的上传命令是 put。
put sam.png
这个命令把本地当前工作目录下的 sam.png 上传到远程服务器的工作目录下。
put -r picture
上传整个目录文件。
更多命令
在 sftp > 终端输入 help 即可以查看 sftp 提供的所有命令:
sftp> help
Available commands:
bye Quit sftp
cd path Change remote directory to 'path'
chgrp grp path Change group of file 'path' to 'grp'
chmod mode path Change permissions of file 'path' to 'mode'
chown own path Change owner of file 'path' to 'own'
df [-hi] [path] Display statistics for current directory or
filesystem containing 'path'
exit Quit sftp
get [-Ppr] remote [local] Download file
help Display this help text
lcd path Change local directory to 'path'
lls [ls-options [path]] Display local directory listing
lmkdir path Create local directory
ln [-s] oldpath newpath Link remote file (-s for symlink)
lpwd Print local working directory
ls [-1afhlnrSt] [path] Display remote directory listing
lumask umask Set local umask to 'umask'
mkdir path Create remote directory
progress Toggle display of progress meter
put [-Ppr] local [remote] Upload file
pwd Display remote working directory
quit Quit sftp
rename oldpath newpath Rename remote file
rm path Delete remote file
rmdir path Remove remote directory
symlink oldpath newpath Symlink remote file
version Show SFTP version
!command Execute 'command' in local shell
! Escape to local shell
? Synonym for help