一、简介

PSFTP:即PuTTY SFTP客户端,是用SSH连接在计算机之间安全传输文件的工具。

  • 下载与配置

打开下载页面,选择合适的psftp.exe安装文件。

如果要在命令行中使用,需将PSFTP所在目录添加到PATH环境变量中,可以在 系统-高级系统设置-环境变量(Win+Pause) 中设置或在CMD命令行中设置临时环境变量:

set PATH=F:\ProgramFiles\Putty;%PATH%
  • 说明

PSFTP命令中的参数由空格分隔,如果文件名中有空格需要使用双引号将文件名包围起来。

PSFTP的一些命令支持使用通配符来选择多个文件,例如:*匹配任何字符;?匹配一个字符;[a-z]匹配a~z范围内的任何字符等。

二、启动PSFTP

可以直接双击下载的psftp.exe或使用命令行启动PSFTP:

psftp

1、连接主机

psftp server.example.com
或
psftp fred@server.example.com

2、执行批处理文件

psftp user@hostname -b myscript.scr

使用-b参数可以执行指定的处理自动化任务的脚本;当以这种方式运行批处理脚本时,如果任何一个命令无法成功完成,则PSFTP将中止该脚本。

  • -bc
psftp fred@hostname -bc -b batchfile

使用此参数可以在运行脚本时显示提示和命令,就像在键盘上输入命令一样。

myscript.bat

pwd
cd ./test
ls
del readme.txt
ls

  • -be

此参数可以在运行脚本出现错误时继续进行执行批处理脚本;例如:想删除一个文件但不在乎它是否已经不存在。

  • -batch

使用此参数可以避免交互式提示,通常用在自动化脚本中;例如:使用批处理,在连接时出错,批处理作业将失败而不是挂起。

三、PSFTP命令

1、开始会话

open host.name
open user@host.name 22

使用open命令可以创建一个连接,在创建连接时可以指定端口、用户名等信息。发出此命令后,如果连接没有成功打开,PSFTP将立即终止,即使命令失败(例如:主机名输入错误或连接超时)。

psftp
open wzk@192.168.148.128

2、结束会话

输入quitexitbye命令可以关闭连接,终止PSFTP并返回到命令行或PSFTP控制台窗口(如果是以GUI方式启动)。

3、关闭连接

如果只想关闭连接,仍保持PSFTP运行,可以使用close命令;执行此命令后仍可以使用open命令打开新的连接。

4、联机帮助

使用help命令可以显示某个命令的帮助信息。

help get

5、更换远程工作目录

远程工作目录是其他命令操作的默认目录,例如:get filename,则PSFTP就会在服务器上的远程工作目录中查找并下载此文件。

使用cd命令可以更改远程工作目录,如果此命令不提供参数,则将返回连接开始时所在的远程目录;还可以使用pwd命令显示当前的远程工作目录。

6、更改本地工作目录

本地工作目录是其他命令在本机操作的默认目录,例如:get filename,则PSFTP就会将filename下载到本地工作目录中。

使用lcd命令可以更改本地工作目录;可以使用lpwd来显示当前的本地工作目录。

7、从服务器下载文件

使用get命令可以从服务器下载文件:

get myfile.dat 

在本地以不同的名称保存文件:

get myfile.dat newname.dat

如果要递归获取整个目录,可以使用-r选项:

get -r mydir
get -r mydir newname

8、上传文件到服务器

使用put命令可以将本地文件上传至服务器(如果要上传以连字符-开头的文件,可能需要使用--special参数):

put myfile.dat

在服务器上以不同的名称保存文件:

put myfile.dat newname.dat

使用-r选项递归上传整个目录:

put -r mydir
put -r mydir newname

9、下载或上传多个文件

mgetmputgetput的功能几乎相同,区别在于前者允许指定多个文件,而且命令的每个参数都会被作为要下载或上传的文件名。

10、恢复文件传输

如果文件在传输时失败,并且最终存储在磁盘上的文件只有一部分,那么可以使用regetreput命令来恢复文件传输。这两个命令的工作方式与getput命令完全相同,只不过它们会检查是否存在部分写入的目标文件,并尝试从上次中断的地方开始传输。

这两个命令主要用于恢复中断的传输, 它们假定远程文件或目录结构没有任何改变; 如果发生变化,则有可能会出现文件损坏的情况。

reget myfile.dat
reget myfile.dat newname.dat
reget -r mydir

11、列出远程文件

可以使用lsdir命令来列出远程工作目录中的文件;也可以在此命令后面跟随目录名称:

dir /home/fred
dir sources

还可以使用通配符,列出一个目录的子集:

dir /home/fred/*.txt
dir sources/*.c

12、更改远程文件权限

可以使用chmod命令来修改服务器上文件和目录的权限,支持通配符:

chmod go-rwx,u+w privatefile
chmod a+r public*
chmod 640 groupfile1 groupfile2

13、删除远程文件

使用delrm命令可以删除服务器上的文件,文件删除时不会有确认提示信息:

del oldfile.dat
del file1.txt file2.txt
del *.o

del只能删除文件,不能删除目录,删除目录需使用rmdir

14、创建或删除远程目录

使用mkdir可以在服务器上创建目录,创建时可以一次创建多个目录:

mkdir newstuff
mkdir dir1 dir2 dir3

使用rmdir可以删除服务器上的目录,删除目录时也不会有确认提示信息:

rmdir oldstuff
rmdir *.old ancient

如果目录中包含其他内容,大多数SFTP服务器可能会拒绝删除该目录,因此需要首先删除目录中的内容。

15、移动或重命名文件

使用mvren命令可以重命名服务器上单个文件,也可以将文件移动到不同的目录并修改其名称:

mv oldfile newname
mv oldfile dir/newname

也可以将一个或多个文件移动到某个目录中,支持通配符:

mv file dir
mv file1 dir1/file2 dir2
mv *.c *.h ..

16、运行本地Windows命令

使用!命令可以运行本地Windows命令:如果命令以!开头,则该行命令的其余部分将直接传递给Windows。

例如:从服务器下载某个文件的最新版本文件时备份现有文件:

psftp> !ren myfile.dat myfile.bak
psftp> get myfile.dat

附: