如何將檔案從 UNIX 傳輸到 Windows?

如何將檔案從 UNIX 傳輸到 Windows?

我想將檔案從UNIX伺服器傳輸到Windows 2003伺服器,所以我下載copssh到Windows伺服器上,並且openssh已經安裝在UNIX伺服器上。

當我執行以下命令時(在 UNIX 伺服器上):

scp -r /file_in_unix/ user@windows_hostname:\c:\\\

將出現以下輸出(在 UNIX 伺服器的畫面上):

100% |***************************************************************|   562       00:00

但是,當我在 Windows 伺服器上查看C磁碟機中的檔案時,我沒有找到任何內容。為什麼文件不顯示?

答案1

目標路徑看起來錯誤 - 對於大多數 unix shell 來說,反斜線是轉義字元而不是路徑標記,因此我猜測該檔案已以奇怪的檔案名稱放入 SSH 用戶的主目錄中。

IIRC copssh 是基於 cygwin,因此您可能需要運行的是:

scp -r /file_in_unix/ user@windows_hostname:/cygdrive/c/

複製到 Windows 電腦上的 SSH 服務的替代方法是使用 GUI 用戶端,例如WinSCP在 Windows 機器上登入 Unix 機器並以這種方式提取檔案 - 儘管如果您嘗試自動化該過程,則不適合。

如果您在 UNIX 電腦上具有特權存取權限(即您是或可以透過 sudo 或類似的方式成為 root)並且安裝了相關支持,您只需將檔案複製到 Windows 共用即可。你沒有說你用的是什麼Unix。對於 Ubuntu 和類似的檢查是否存在支援並在沒有支援的情況下安裝它sudo aptitude install smbfs,您可以使用類似的東西掛載 Windwos 共用sudo mount -tcifs //11.22.33.44//sharename /mnt/tmp -ousername=WindowsUserName(其中11.22.33.44 是Windows 電腦的IP 位址,具體取決於您的網路設置,您可以能夠透過名稱而不是地址來引用機器)。完成此操作後,您只需使用基本文件管理工具(cpmv、 ...)即可與 Windows 共用進行交互,並umount /mnt/tmp在完成後進行呼叫。您可能想要選擇比 /mnt/tmp 更有意義的安裝點名稱。當然,如果要自動/安排資料傳輸,您可以保留已安裝的共用。此方法確實假設 Unix 電腦可以透過 Windows 電腦之間可能存在的任何防火牆安排看到 Windows 電腦的檔案共用。

答案2

您也可以反過來操作,從 Windows 端拉取文件,而不是從 Unix 端推送。看看類似的工具WinSCP這是一個用於 SCP 檔案傳輸的圖形工具,讓您可以在 Windows 資源管理器或 Norton Commander 外觀和感覺之間進行選擇,這兩種工具對您來說都應該很直觀。登入後,您可以「以 Windows 方式」導航到感興趣的文件,並將它們拖放到您想要的任何位置。

答案3

使用WinSCP工具。奇蹟般有效。

答案4

為什麼不在 Unix 機器上安裝 Samba?然後您可以在兩個系統之間映射驅動器。或者,我會使用 psftp (來自 putty 套件)而不是命令列 scp,因為您不熟悉它並且顯然不需要編寫它的腳本。

相關內容