您的位置:首页 > 运维架构 > Linux

scp使用--linux windows之间传输文件

2016-10-29 16:48 726 查看
cp --- 主要是用于在同一台电脑上,在不同的目录之间来回copy文件
scp --- 主要是在不同的Linux系统之间来回copy文件

关于cp的具体用法:

命令基本格式:

cp [OPTIONS] SOURCE DEST --- 从源路径copy文件到目的路径

cp [OPTIONS] SOURCE... DIRECTORY --- 将多个源文件copy到指定的目录(多个源文件用空格分隔)

OPTIONS:

-a same as -dpR 尽可能将源文件状态、权限等资料都照原装予以复制,并且是递归copy;

-r 表示递归copy,若source中含有目录名,则将目录下之档案亦皆依序拷贝至目的地;

-f 表示force,若目的地已经有相同档名的档案存在,则在复制前先予以删除再行复制;

范例:

1. 将档案 aaa 复制(已存在),并命名为 bbb:

cp aaa bbb

2. 将所有的C语言程式拷贝至 Finished 子目录中:

cp *.c Finished/

关于scp的具体用法:

不同的Linux之间copy文件常用有3种方法:

第一种就是ftp,也就是其中一台Linux安装ftp Server,这样可以在另外一台机器使用ftp的client程序来进行文件的copy。

第二种方法就是采用samba服务,类似Windows文件copy 的方式来操作,比较简洁方便。

第三种就是利用scp命令来进行文件复制。

scp是有Security的文件copy,基于ssh登录。

命令基本格式:

scp [OPTIONS] file_source file_target

OPTIONS:

-v 和大多数 linux 命令中的 -v 意思一样 , 用来显示进度 . 可以用来查看连接、认证、 或是配置错误

-C 使能压缩选项

-P 选择端口 . 注意 -p 已经被 rcp 使用

从 本地 复制到 远程 

scp  -rp  /path/filename  username@remoteIP:/path
scp /home/daisy/full.tar.gz root@172.19.2.75:/home/root (然后会提示你输入另外那台172.19.2.75主机的root用户的登录密码,接着就开始copy了),复制目录加参数 -r 即可

从 远程 复制到 本地 

scp  -rp  username@remoteIP:/path/filename  /path
scp root@/172.19.2.75:/home/root/full.tar.gz /home/daisy/full.tar.gz

1.如果远程服务器防火墙有特殊限制,scp便要走特殊端口,具体用什么端口视情况而定,命令格式如下:

#scp -p 4588 remote@www.abc.com:/usr/local/sin.sh /home/administrator

windows路径

administrator@127.0.0.1:/D:/

从linux系统复制文件到windows系统:scp /oracle/a.txt  administrator@192.168.3.181:/d:/

在linux环境下,将windows下的文件复制到linux系统中:scp
administrator@192.168.3.181:/d:/test/config.ips  /oracle

请注意:因为windows系统本身不支持ssh协议,所以,要想上面的命令成功执行,必须在windows客户端安装ssh for windows的客户端软件,比如winsshd,使windows系统支持ssh协议才行。

1.工具1: Winscp

为可视化界面工具,支持sftp, ftp, scp 三种传输协议。

软件主页:http://winscp.net/eng/docs/commandline

2. 工具2:scp.exe

下载连接如下:http://download.csdn.NET/detail/bluehawksky/7972457

下载后解压,得到scp.exe

执行该工具需要在命令行中运行,进入开始-.运行 输入 cmd进入刚才scp解压目录。

若想在任意路径下都能运行scp.exe,需要把scp.exe所在路径写入系统的环境变量PATH:

右击 我的电脑 -> 属性 -> 高级 ->环境变量 , 编辑 PATH,在最后面加上scp.exe所在目录。

在CMD运行 scp.exe   ,会弹出工具的详细说明:



从linux主机上拷贝文件到windows主机,命令如下:

scp.exe  usrname@IP:/home/..../filename  C:/123

(y or n) y

将指定IP的指定目录下的filename文件拷贝到C:/123(当然,这个目录你可以自己设定),在第一次连接Linux主机时,工具会提示你是否将这个主机加入通信列表,如果输入y的话,就是同意,这样以后再使用scp.exe时,就不会弹出这个询问信息。假如选
n  ,则每次连接这个主机都需要询问是否添加到通信列表。所以这里推荐 y 。

从linux主机上拷贝文件夹到windows主机:命令如下:

scp.exe -r usrname@IP:/../directory       C:/123//注,这里directory不要写成directroy/,因为前面的-r参数就说明了是文件夹。

从windows主机上拷贝文件到linux主机:命令如下:

scp.exe  filename  usrname@IP:/../dest_driectory         

从windows主机上拷贝文件夹到linux主机:命令如下:

scp.exe -r driectory  usrname@IP:/..../

使用scp工具拷贝文件速度当然也是很快的,同一局域网就更不用说了。。。。

附: 还有一个工具 pietty.exe。
http://download.csdn href="http://lib.csdn.net/base/dotnet" target=_blank>.Net/detail/coutsomebody/6045111

 

输入目的linux主机的IP以及端口,选择ssh方式(端口一般是22)。登陆指定Linux主机,这样就可以很方便地查看Linux主机上的文件目录

这样 scp.exe + pietty.exe 就完整地实现了 linux 下的scp工具。 这对于过年放假回家,但还得做科研工作的孩子,提供了一个很方便的,随时连接学校实验室Linux主机,进行数据交换的环境。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: