三种方式实现Linux的文件上传下载

一.sftp指令

sftp命令是常用的文件传输工具,它的使用方式与ftp类似,但它使用ssh作为底层传输协议,所以安全性比ftp要好得多。博主的使用的是CentOS系统,其只提供了sftp指令而并没有提供ftp指令,需要ftp指令则需要自行安装

[root@iZ2ze9twtxjrbirmldp9owZ ~]# ftp
-bash: ftp: command not found
[root@iZ2ze9twtxjrbirmldp9owZ ~]# sftp 
usage: sftp [-1246aCfpqrv] [-B buffer_size] [-b batchfile] [-c cipher]
          [-D sftp_server_path] [-F ssh_config] [-i identity_file] [-l limit]
          [-o ssh_option] [-P port] [-R num_requests] [-S program]
          [-s subsystem | sftp_server] host
       sftp [user@]host[:file ...]
       sftp [user@]host[:dir[/]]
       sftp -b batchfile [user@]host
[root@iZ2ze9twtxjrbirmldp9owZ ~]# yum install ftp

连接指定主机

//sftp username@host  端口号默认22,用户名不指定的话也会默认当前用户名,这里指定了用户名
[root@centos6-1 ~]# sftp zaomianbao@192.168.214.1
Connecting to 192.168.214.1...
Password:         //输入你要连接的主机的对应用户的密码
sftp> 

pwd 和 lpwd

sftp> pwd   //获取对应的远程目录
Remote working directory: /Users/zaomianbao
sftp> lpwd   //获取当前对应本地目录
Local working directory: /root
sftp> 

ls 和 lls

sftp> ls    //展示远程目录下的文件
Applications               Applications (Parallels)   Desktop                    Documents                  Downloads                  
HydraLog                   Library                    Movies                     Music                      Parallels                  
Pictures                   Public                     private               	 a.java                       
sftp> lls   //展示本地目录下的文件
anaconda-ks.cfg  banner1.jpg  install.log  install.log.syslog
sftp> 

下载远程文件

sftp> get a.java    //get 文件名         这也可以写成这样:get /Users/zaomianbao/a.java
Fetching /Users/zaomianbao/a.java to a.java
sftp> lls
a.java  anaconda-ks.cfg  banner1.jpg  install.log  install.log.syslog
sftp> 

上传本地文件到远程

sftp> put anaconda-ks.cfg    //put 文件名    也可以写成这样:put /Users/zaomianbao/anaconda-ks.cfg
Uploading anaconda-ks.cfg to /Users/zaomianbao/anaconda-ks.cfg
anaconda-ks.cfg                                                                                        100% 1584     1.6KB/s   00:00    
sftp> ls
Applications               Applications (Parallels)   Desktop                    Documents                  Downloads                  
HydraLog                   Library                    Movies                     Music                      Parallels                  
Pictures                   Public                     a.java                     anaconda-ks.cfg            darkhorse                  
private                    
sftp>

退出sftp

sftp> exit    //这里我们使用control+c是退出不了的
[root@centos6-1 ~]# 

二.lrzsz

lrzsz是一款在linux里可代替ftp上传和下载的程序——百度

CentOS系统本身并没有安装此程序,需要手动安装

[root@iZ2ze9twtxjrbirmldp9owZ ~]# rz
-bash: rz: command not found
[root@iZ2ze9twtxjrbirmldp9owZ ~]# yum install -y lrzsz
[root@iZ2ze9twtxjrbirmldp9owZ ~]# rz
rz waiting to receive.
Starting zmodem transfer.  Press Ctrl+C to cancel.

文件下载(在连接虚拟机的shell窗口上操作从虚拟机下载文件到本地)

[root@centos6-1 ~]# ls
anaconda-ks.cfg  install.log  install.log.syslog
[root@centos6-1 ~]# sz install.log   //sz 文件名
rz
Starting zmodem transfer.  Press Ctrl+C to cancel.
Transferring install.log...
  100%      27 KB      27 KB/sec    00:00:01       0 Errors  

[root@centos6-1 ~]# 

查看我们的本地的文件,发现上传成功
这里写图片描述

默认上传到了文稿目录下,windows下也有默认的路径

文件上传方式一(在连接虚拟机的shell窗口上操作从本地上传文件到虚拟机)

1.输入"rz"

[root@centos6-1 ~]# rz
rz waiting to receive.
Starting zmodem transfer.  Press Ctrl+C to cancel.

2.会弹出一下窗口
这里写图片描述
3.选择需要下载的文件,点击ok
这里写图片描述
4.查看是否下载成功

[root@centos6-1 ~]# ls
anaconda-ks.cfg  install.log  install.log.syslog  license

文件上传方式二

直接拖拽文件到shell窗口内,然后选择Start Zmodem Upload
这里写图片描述
效果与rz的方式一样

[root@centos6-1 ~]# rz
rz waiting to receive.
Starting zmodem transfer.  Press Ctrl+C to cancel.
Transferring notice...
  100%       1 KB       1 KB/sec    00:00:01       0 Errors  

[root@centos6-1 ~]# ls
anaconda-ks.cfg  install.log  install.log.syslog  license  notice

三.可视化sftp工具

当然我们也可以使用流行的SFTP可视化工具进行文件的访问,上传,下载
例如:Transmit
这里写图片描述

使用方式自行查找