菜鸟科技网

cmd sftp命令如何使用?

在 Windows 的 cmd.exe (命令提示符) 或 PowerShell 中,sftp 并不是一个像 dirls 那样的内置命令。

cmd sftp命令如何使用?-图1
(图片来源网络,侵删)

SFTP (SSH File Transfer Protocol) 是一个独立的客户端程序,在 Windows 上,你需要先安装一个提供 sftp 命令行的工具,最常用和推荐的是 PuTTY 套件。


第一步:安装 PuTTY 套件

  1. 下载:访问 PuTTY 官方下载页面:https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
  2. 下载文件:下载 msi 安装包(putty-0.76-installer.msi)。
  3. 安装:运行安装包,按照向导完成安装,安装程序默认会将 sftp.exe 所在的路径添加到系统的 PATH 环境变量中,这样你就可以在任何地方直接使用 sftp 命令了。

第二步:基本 SFTP 命令语法

安装完成后,你就可以在 cmdPowerShell 中使用 sftp 命令了。

连接到 SFTP 服务器

这是最基本的用法,用于首次连接。

sftp <username>@<hostname_or_ip>
  • <username>: 你的 SFTP 服务器用户名。
  • <hostname_or_ip>: 服务器的域名或 IP 地址。

示例:

cmd sftp命令如何使用?-图2
(图片来源网络,侵删)
sftp myuser@example.com
# 或者
sftp myuser@192.168.1.100

执行此命令后会发生什么?

  1. 首次连接提示:如果是第一次连接到该服务器,你会看到如下警告,询问是否信任主机的 RSA 密钥,输入 yes 并回车。
    The authenticity of host 'example.com (93.184.216.34)' can't be established.
    RSA key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
    Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
  2. 输入密码:连接成功后,系统会提示你输入密码(输入时不会显示任何字符,输入完直接回车)。
    myuser@example.com's password:
  3. 进入 SFTP 提示符:登录成功后,你的命令行提示符会变成 sftp>,这表示你已经进入了 SFTP 会话。

第三步:SFTP 会话常用命令

一旦你进入了 sftp> 提示符,就可以使用以下命令来管理文件和目录,这些命令很多与 Linux/Unix 的 ftp 命令相似。

命令 描述 示例
ls 列出当前远程目录下的文件和目录 ls
cd <path> 切换远程服务器的目录 cd /var/www/html
pwd 显示当前所在的远程目录路径 pwd
get <remote_file> 下载一个文件从远程服务器到本地 get myfile.txt
get -r <remote_dir> 下载一个目录及其所有内容 get -r my_project
put <local_file> 上传一个文件从本地到远程服务器 put report.pdf
put -r <local_dir> 上传一个本地目录及其所有内容 put -r my_photos
mkdir <dirname> 在远程服务器上创建一个新目录 mkdir new_folder
rmdir <dirname> 删除远程服务器上的一个目录 rmdir empty_folder
rm <filename> 删除远程服务器上的一个文件 rm old_file.log
执行本地系统命令 !dir (查看本地目录), !ls (列出本地文件)
exitbye 退出 SFTP 会话,返回到本地命令行 exit

第四步:完整操作示例

假设你要将本地的 C:\Users\YourUser\Documents\project.zip 文件上传到服务器的 /home/myuser/backups/ 目录下。

步骤 1:打开命令提示符

cmd sftp命令如何使用?-图3
(图片来源网络,侵删)

步骤 2:连接到服务器

sftp myuser@example.com

输入密码后,进入 sftp> 提示符。

步骤 3:在服务器上操作

# 检查当前远程目录
sftp> pwd
Remote working directory: /home/myuser
# 切换到目标上传目录
sftp> cd backups
sftp> pwd
Remote working directory: /home/myuser/backups
# (可选) 查看目录是否为空
sftp> ls

步骤 4:从本地上传文件

# 上传 project.zip 文件
sftp> put C:\Users\YourUser\Documents\project.zip
Uploading project.zip to /home/myuser/backups/project.zip
project.zip | 1048576 | 1024 KB/s | 00:00:01          |

步骤 5:验证上传并退出

# 确认文件已上传
sftp> ls
project.zip
# 退出 SFTP 会话
sftp> exit

第五步:高级用法 (在一条命令中执行)

如果你想在连接后立即执行一个或多个命令,而不是进入交互式 sftp> 提示符,可以使用 -b (batch file) 选项。

语法:

sftp -b <batch_script_file> <username>@<hostname>

<batch_script_file> 是一个文本文件,里面每行写一个 SFTP 命令。

示例:

假设你有一个名为 upload_commands.txt 的文件,内容如下:

# upload_commands.txt 的内容
cd /home/myuser/backups
put C:\Users\YourUser\Documents\project.zip
ls
exit

然后你可以在命令行中直接执行:

sftp -b upload_commands.txt myuser@example.com

系统会依次执行文件中的命令,最后自动退出,这对于自动化脚本(如 Windows 任务计划程序)非常有用。

  1. 前提:必须在 Windows 上安装 PuTTY 套件。
  2. 连接:使用 sftp user@host 命令连接。
  3. 交互:登录后进入 sftp> 提示符,使用 get, put, ls, cd 等命令进行文件传输。
  4. 自动化:使用 sftp -b script.txt user@host 来执行预定义的命令列表,实现非交互式操作。
分享:
扫描分享到社交APP
上一篇
下一篇