Linux 和Windows之間命令行實現目錄或文件互傳


Linux 和Windows之間命令行實現目錄或文件互傳

在linux中,我們常用scp命令傳輸文件:
如以下實例,我們想把當前服務器文件abc.sql傳輸到192.168.1.1服務器上

我們可以執行以下命令:

scp /home/person/hww/abc.sql root@192.168.1.1:/home/person/hww 

回車后輸入192.168.1.1服務器密碼就可以了。

你也可以使用以下命令:

pscp /home/person/hww/abc.sql root@192.168.1.1:/home/person/hww 

同樣回車后輸入 192.168.1.1服務器密碼就可以了。

注:pscp是putty安裝包所帶的遠程文件傳輸工具,使用和Linux下scp命令相似。

下載地址:http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

pscp和scp功能相同,但pscp同時支持windows下使用,它有效解 決了windows系統向linux服務器傳輸文件,而且它只有一個文件,即pscp.exe,建議將該文件放到C:\WINDOWS\system32 下面,這樣就可以在任何地方調用該文件命令,你也可以放在任意你指定文件夾下。

pscp語法基本與scp相同,但也有一下幾個注意點:

    -p 拷貝文件的時候保留源文件建立的時間。
    -q 執行文件拷貝時,不顯示任何提示消息。
    -r 拷貝整個目錄
    -v 拷貝文件時,顯示提示信息。

    Usage:
  pscp [options] [user@]host:source target
  pscp [options] source [source...] [user@]host
  pscp [options] -ls user@host:filespec
  用法:
  pscp [選項] [用戶名@]主機:源文件 目標文件
  pscp [選項] 源文件 [源文件……] [用戶名@]主機
  pscp [選項] -ls 用戶名@主機:文件空間?
  Options:
  選項:
  -p preserve file attributes 保護文件屬性
  -q quiet, don't show statistics 安靜,不顯示統計
  -r copy directories recursively 復制子文件夾
  -V print version information and exit 顯示信息
  -v show verbose messages
  -load sessname Load settings from saved session
  -load 加載,加載保存節的設定
  -P port connect to specified port
  -P 端口,連接到指定空間端口
  -l user connect with specified username
  -l 用戶,用指定的用戶連接空間
  -pw passw login with specified password
  -pw 密碼,用指定的密碼登錄空間
  -1/-2 強迫 ssh 使用的版本
  -4 -6 force use of IPv4 or IPv6
  -C 打開壓縮
  -i key 鑰匙,證明用的鑰匙文件
  -batch 關閉交互能力,也許
  -unsafe 不安全,允許伺服端取代字符 (危險的)

       pscp options(詳細參數)

參數 描述(英文) 描述(中文)
-V print version information and exit 打印版本信息並退出
-pgpfp print PGP key fingerprints and exit 打印PGP密鑰指紋並退出。(至於PGP密匙是什么,這個樓主我也不太清楚,歡迎評論解答
-p preserve file attributes 保留文件屬性
-q quiet, don't show statistics 悄悄地, 不顯示統計數據

-r copy directories recursively 遞歸拷貝目錄
-v show verbose message 顯示冗余信息
-load sessname Load settings from saved session 加載保存好的會話設置
-P port connect to specified port 連接指定的端口(如果不用此選項,默認為22端口)
-l user connect with specified usernam

指定用戶連接   

-pw passw login with specified password

顯式的輸入用戶密碼

-1 -2 force use of particular SSH protocol version 強制使用指定SSH協議版本, 可以通過:cat /etc/ssh/ssh_config | grep Protocol 來查看, 也可以用pscp -v的形式先連接一下, 它會顯示出所有冗余信息,其中會有這么一行Using SSH protocol version 2 具體試一下就知道了!
-4 -6 force use of IPv4 or IPv6 強制使用IPv4或IPv6
-C enable compression 使用壓縮
-i key private key file for authentication 認證所需要的私有密鑰文件
-noagent disable use of Pageant 不使用Pageant
-agent enable use of Pageant 使用Pageant
-batch disable all interactive prompts 禁用所有交互提示
-unsafe allow server-side wildcards (DANGEROUS) 允許服務器段的通配符
-sftp force use of SFTP protocol 強制使用SFTP協議
-scp force use of SCP protocol 強制使用SCP協議

簡單說一下幾個參數:

-P 指定ssh的端口, 注意是大寫的P

pscp -P 2992 test.zip root@192.168.1.245:/root/ 

-l user 的用戶

pscp -l root test.zip 192.168.1.245:/root/    其實就是把user提到了前面用-l來指定。

-pw passw

pscp -l root -pw 123456 test.zip 192.168.1.245:/root/    與-l一樣。 可以直接指定密碼,出於安全性考慮不見意這樣使用。 

下面舉一實例方便大家理解:

想把xp系統下fileUpload文件夾下的所有內容傳輸到192.168.1.1的linux服務器上"/home/data/file"文件夾下。我們可以做以下操作:

1.我們把pscp.exe拷貝到fileUpload的同級目錄,然后我們可以寫一個簡單bat腳本,完成以上操作

2.腳本內容:

@echo off  

pscp.exe -l hww -pw "123" -r "fileUpload/"  root@192.168.1.1:/home/data/file  

pause 

把文件另存為以bat為后綴的文件,我把它定義為fileupload.bat

注意:hww為linux設置的上傳文件賬戶,123為hww登錄linux密碼。你也可以直接使用root帳號。但建議為了服務器安全,設置特別上傳帳號。

 3.現在你只要把所要上傳的文件放置到fileUpload目錄下,然后雙擊fileupload.bat,你就可以見證奇跡的一刻了,windows控制台會顯示上傳內容,默默等待上傳完成,會提示”按任意鍵退出“!

 OK,我們完成了windows系統對linux服務器文件的上傳。

參考:

  https://www.cnblogs.com/mingjian/p/4873199.html

  https://www.cnblogs.com/echo-something/archive/2012/09/20/pscp.html

如果,您認為閱讀這篇博客讓您有些收獲,不妨點擊一下右下角的【推薦】。
如果,您希望更容易地發現我的新博客,不妨點擊一下左下角的【關注我】。
如果,您對我的博文感興趣,可以關注我的后續博客,我是【AlbertRui】。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM