macOS终端SFTP上传或下载服务器的文件

2024-01-04
#Unix #Experiences

1. 前言

在 macOS 上,不用第三方开源或商业软件进行 SSH 登录,已经实现用默认终端进行 SSH 管理 1

如果要上传或下载服务器的文件或文件夹,可以使用默认终端的 SFTP 工具。

SFTP(SSH File Transfer Protocol,SSH 文件传输协议)和 SCP(Secure Copy,安全拷贝)是两种用于安全文件传输的协议,均使用SSH协议来传输文件。2

SCP 之前已经写过一篇文章 3

2. SFTP 操作

  1. 本地终端连接服务器
sftp name@IP

如果,本地已经设置了 ~/.ssh/config 1,可以直接用命令:sftp server

  1. 上传文件/文件夹

首先,可以通过 !ls 查看本地当前路径下的文件。

输入:

put a.txt /home/name
  • a.txt 为本地当前路径下的文件
  • /home/name 为服务器的路径
  • -r 可以对文件夹操作
  1. 下载文件/文件夹

首先,可以通过 ls 查看服务器的当前路径下的文件。

输入:

get b.txt .
  • b.txt 为服务器当前路径下的文件
  • . 表示本地当前路径
  • -r 可以对文件夹操作
  1. 帮助

输入 help,得到如下内容:

Available commands:
bye                                Quit sftp
cd path                            Change remote directory to 'path'
chgrp [-h] grp path                Change group of file 'path' to 'grp'
chmod [-h] mode path               Change permissions of file 'path' to 'mode'
chown [-h] own path                Change owner of file 'path' to 'own'
copy oldpath newpath               Copy remote file
cp oldpath newpath                 Copy remote file
df [-hi] [path]                    Display statistics for current directory or
                                   filesystem containing 'path'
exit                               Quit sftp
get [-afpR] 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 [-afpR] local [remote]         Upload file
pwd                                Display remote working directory
quit                               Quit sftp
reget [-fpR] remote [local]        Resume download file
rename oldpath newpath             Rename remote file
reput [-fpR] local [remote]        Resume upload 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

3. 延伸阅读

  1. macOS终端SSH公钥登陆服务器
  2. 通过SFTP或SPC上传本地文件到Linux系统的ECS或将ECS的文件下载至本地_云服务器 ECS(ECS)-阿里云帮助中心
  3. Ubuntu连接服务器的账号登录和上传下载文件
  4. Linux 命令详解:SFTP - 知乎
  5. ssh(1) - OpenBSD manual pages
  6. sftp(1) - OpenBSD manual pages
  7. scp(1) - OpenBSD manual pages