如何把linux服务器的文件下到本地windows
linux与linux之间传送文件:
scp file username@hostIP:文件地址 例:
scp abctxt endall@IP:/home/endall/abctxt
windows与linux之间传送文件:
笔者用putty的内置PSCP。其它如 SSH Secure File Transfer Client
先在WIN的DOS下,PUTTY目录下及PSCP文件所在目录。
pscp file username@hostIP:文件地址
例:pscp d:abctxt endall@IP:/home/endall/abctxt
pscp endall@IP:/home/endall/abctxt d:abc
linux到windows类似
windows如何用 putty的 psftp 从 linux上传与下载
windows 下运行 psftpexe ,登录后改变在linux下的目录:
cd /usr/
改变在windows下上传和下载的目录:
lcd d:/
这个目录在 psftp 中不能列出来,我觉得这点不太好,如果不改变的话就是默认putty的安装目录,默认下载到这儿,上传的文件也是要在这个文件夹里面
比如在 d:盘有一个 5rmvb
上传文件到linux: psftp > put 5rmvb
这个命令会把 d:\5rmvb 上传到 /usr/5rmvb
从linux下载文件: psftp > get 4rmvb
这个命令会把 /usr/4rmvb 下载到 d:\4rmvb
既然使用了java,实现这种功能就与OS无关了,否则叫什么跨平台。其实用浏览器下载服务器端文件比较容易:
首先,要让用户能找到并选择文件(jsp里实现,部分代码)
String realPath=requestgetSession()getServletContext()getRealPath("")+"/documents";//项目根目录下文件路径
File fileDir=new File(realPath);
String[] fileList=fileDirlist();//返回目录下文件名称数组
for(int i=0;i<fileListlength;i++){
//这里遍历出来要显示的文件名,加到td里,后面再加上个“下载”按钮
//使用隐藏input记录文件名和路径fileName,filePath
}
其次,提交下载请求并下载
使用form提交用户选择的文件名,Action中部分代码:
String fileName=reqgetParameter("fileName");//HttpServletRequest req
String filePath=reqgetParameter("filePath");
try {
FileDownloadDownload(filePath+"/"+fileName, "attachment", res);
} catch (Exception e) {
eprintStackTrace();
}
下面是 FileDownload类:
package comaerolinkaocsutilfileUtil;
import javaioDataInputStream;
import javaioFile;
import javaioFileInputStream;
import javaioFileNotFoundException;
import javaioIOException;
import javaxservletServletOutputStream;
import javaxservlethttpHttpServletResponse;
/
<p>
Title: FileDownload类
</p>
<p>
Description: 实现文件下载功能
</p>
<p>
将文件名,HttpServletRequest,HttpServletRespons传给静态方法Download即可
</p>
<p>
Copyright: Copyright (c) 2005
</p>
<p>
Company: 北京天航信达信息技术有限公司
</p>
@author 陶源
@version 20
/
public class FileDownload {
/
@param fileName
@param res
@throws FileNotFoundException
@throws IOException
/
public static void Download(String fileName,
HttpServletResponse res)
throws FileNotFoundException, IOException {
String fileContentType = "application/octet-stream";
String fileDownloadType = "attachment";
long totalsize = 0;
// 取得要传输的文件,实际应用是可以将文件路径以参数的形式传入
File f = new File(fileName);
// 取文件长度
long filelength = flength();
byte[] b = new byte[1024];
// 设置文件输出流
FileInputStream fin = new FileInputStream(f);
DataInputStream in = new DataInputStream(fin);
int pos = fileNamelastIndexOf(javaioFileseparator);
String fn = new String(fileNamesubstring(pos + 1)getBytes("gb2312"),
"ISO8859-1");
// 设置相应头信息,让下载的文件显示保存信息
ressetContentType(fileContentType);
ressetHeader("Content-Disposition", fileDownloadType + ";filename=\""
+ fn + "\"");
// 确定长度
String filesize = LongtoString(filelength);
// 设置输出文件的长度
ressetHeader("Content-Length", filesize);
// 取得输出流
ServletOutputStream servletOut = resgetOutputStream();
// 发送文件数据,每次1024字节,最后一次单独计算
while (totalsize < filelength) {
totalsize += 1024;
if (totalsize > filelength) {
// 最后一次传送的字节数
byte[] leftpart = new byte[1024 - (int) (totalsize - filelength)];
// 读入字节数组
inreadFully(leftpart);
// 写入输出流
servletOutwrite(leftpart);
} else {
// 读入1024个字节到字节数组 b
inreadFully(b);
// 写和输出流
servletOutwrite(b);
}
}
servletOutclose();
}
/
@param fileName
@param fileDownloadType
@param res
@throws FileNotFoundException
@throws IOException
/
public static void Download(String fileName, String fileDownloadType,
HttpServletResponse res)
throws FileNotFoundException, IOException {
String fileContentType = null;
if (fileNameendsWith("doc")) {
fileContentType = "application/msword";
} else if (fileNameendsWith("pdf")) {
fileContentType = "application/pdf";
} else if (fileNameendsWith("xls")) {
fileContentType = "application/vnd-ms-excel";
} else if (fileNameendsWith("txt")) {
fileContentType = "text/plain";
} else {
fileContentType = "application/octet-stream";
}
long totalsize = 0;
// 取得要传输的文件,实际应用是可以将文件路径以参数的形式传入
File f = new File(fileName);
// 取文件长度
long filelength = flength();
byte[] b = new byte[1024];
// 设置文件输出流
FileInputStream fin = new FileInputStream(f);
DataInputStream in = new DataInputStream(fin);
int pos = fileNamelastIndexOf(javaioFileseparator);
String fn = new String(fileNamesubstring(pos + 1)getBytes("gb2312"),
"ISO8859-1");
// 设置相应头信息,让下载的文件显示保存信息
ressetContentType(fileContentType);
ressetHeader("Content-Disposition", fileDownloadType + ";filename=\""
+ fn + "\"");
// 确定长度
String filesize = LongtoString(filelength);
// 设置输出文件的长度
ressetHeader("Content-Length", filesize);
// 取得输出流
ServletOutputStream servletOut = resgetOutputStream();
// 发送文件数据,每次1024字节,最后一次单独计算
while (totalsize < filelength) {
totalsize += 1024;
if (totalsize > filelength) {
// 最后一次传送的字节数
byte[] leftpart = new byte[1024 - (int) (totalsize - filelength)];
// 读入字节数组
inreadFully(leftpart);
// 写入输出流
servletOutwrite(leftpart);
} else {
// 读入1024个字节到字节数组 b
inreadFully(b);
// 写和输出流
servletOutwrite(b);
}
}
servletOutclose();
}
}
用 这个命令 吧
scp 可以在 2个 linux 主机间复制文件;
命令基本格式:
scp [可选参数] file_source file_target
======
从 本地 复制到 远程
======
复制文件:
命令格式:
scp local_file remote_username@remote_ip:remote_folder
或者
scp local_file remote_username@remote_ip:remote_file
或者
scp local_file remote_ip:remote_folder
或者
scp local_file remote_ip:remote_file
第1,2个指定了用户名,命令执行后需要再输入密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名;
第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名;
例子:
scp /home/space/music/1mp3 root@wwwcumteducn:/home/root/others/music
scp /home/space/music/1mp3 root@wwwcumteducn:/home/root/others/music/001mp3
scp /home/space/music/1mp3 wwwcumteducn:/home/root/others/music
scp /home/space/music/1mp3 wwwcumteducn:/home/root/others/music/001mp3
wget -c 后面是该网络地址和文件的位置。
例如:wget -c http://apacheopncasor/MySQL/MySQL-7/v7067/bin/MySQLzip就是下载该网络想的MySQLzip压缩包。
其中-c:断点续传,如果下载中断,那么连接恢复时会从上次断点开始下载。
扩展资料:
wget 是一个从网络上自动下载文件的自由工具,支持通过 HTTP、HTTPS、FTP 三个最常见的 TCP/IP协议 下载,并可以使用 HTTP 代理。"wget" 这个名称来源于 “World Wide Web” 与 “get” 的结合。
wget下载的参数设定:
--bind-address=ADDRESS 指定本地使用地址(主机名或IP,当本地有多个IP或名字时使用)
-nc, --no-clobber 不要覆盖存在的文件或使用#前缀
--progress=TYPE 设定进程条标记
-N, --timestamping 不要重新下载文件除非比本地文件新
-T, --timeout=SECONDS 设定响应超时的秒数
-w, --wait=SECONDS 两次尝试之间间隔SECONDS秒
--waitretry=SECONDS 在重新链接之间等待1SECONDS秒
--random-wait 在下载之间等待02WAIT秒
递归下载:
-r, --recursive 递归下载--慎用!
-l, --level=NUMBER 最大递归深度 (inf 或 0 代表无穷)
--delete-after 在完毕后局部删除文件
-k, --convert-links 转换非相对链接为相对链接
-K, --backup-converted 在转换文件X之前,将之备份为 Xorig
-m, --mirror 等价于 -r -N -l inf -nr
-p, --page-requisites 下载显示HTML文件的所有
参考资料:
linux一般用作于服务器使用,通常使用文字界面,这里分享下如何从远程终端下载文件到本地磁盘。
1、首先在windows开始菜单可以寻找到filezilla软件,点击他即可启动程序。
2、输入正确的linux主机的ip地址,用户名,密码,以及22端口,点击连接即可登录,登录成功会提示Listing directory /root。
3、接着在linux相应的目录,找到相应的文件或者目录,如下图所示。
4、在对应的文件右击下载即可,在下载之前记得先选择文件存放的目录。
5、这时就可以把文件成功下载在桌面了,到桌面查看下载的文件,就完成了。
第一种方式:
SecureCRT下
上传文件只需在shell终端仿真器中输入命令“rz”,即可从弹出的对话框中选择本地磁盘上的文件,利用Zmodem上传到服务器当前路径下。
下载文件只需在shell终端仿真器中输入命令“sz 文件名”,即可利用Zmodem将文件下载到本地某目录下。
通过“File Transfer”可以修改下载到本地的默认路径。设置默认目录:options-->session options-->file transfer。
或者
下载文件存放位置在securtCRT中设置,位于:
英文版 options — session options — X/Y/Zmodem。
中文版 选项— 会话选项— X/Y/Zmodem。
第二种方式:用sftp
securecrt 按下ALT+P就开启新的会话 进行ftp操作。
输入:help命令,显示该FTP提供所有的命令
pwd: 查询linux主机所在目录(也就是远程主机目录)
lpwd: 查询本地目录(一般指windows上传文件的目录:我们可以通过查看”选项“下拉框中的”会话选项“,如图二:我们知道本地上传目录为:D:/我的文档)
ls: 查询连接到当前linux主机所在目录有哪些文件
lls: 查询当前本地上传目录有哪些文件
lcd: 改变本地上传目录的路径
cd: 改变远程上传目录
get: 将远程目录中文件下载到本地目录
put: 将本地目录中文件上传到远程主机(linux)
quit: 断开FTP连接
0条评论