Ubuntu 用指令互傳檔案

Ubuntu 用指令互傳檔案

阿舍前幾天在做 VPS 的升級作業的時候,在 Ubuntu Documentation 網站上有看到這一篇和備份有關的說明文件 ,其中有提到將備份出來的檔案直接下傳到另外一台電腦的作法,阿舍那個時候所用的本地電腦是沒有對真實 IP 的,所以,就沒有照它的說明來試試,今天有想到,就把電腦切到 Ubuntu 來試試,用二台虛擬機器來互傳檔案看看哩!

Credit : Sven
阿舍看的這篇文,是用一個做「nc」的指令來傳檔的,阿舍查了一下,nc 指令的全名是「netcat」,所以,除了用 nc 指令來執行以外,也可以使用全名的 netcat 指令執行,而執行的方式是要先在接收端啟動 nc 程式來指定要從那一埠號來接收檔案及要儲存成的檔案名稱,然後,再到要送出檔案的電腦上執行 nc 來送檔

以阿舍要從 A 電腦傳一個 檔案名稱叫 arthurtoday.txt 的檔案到 B 電腦的作法為例,阿舍先到 B 電腦上執行 nc 程式並指定用 8888 埠號來接受檔案,然後,將收到的檔案存成 ayubiz.txt,那麼操作的指令就會下面這樣

nc -l 8888 > ayubiz.txt

接著,阿舍就要到 A 電腦來送檔出去,在送檔前,一定要知道對方電腦的 IP 和等待接收的埠號才行,以阿舍為例,B 電腦的 IP 的 192.168.2.103,而開啟的埠號是 8888,所以,阿舍就用下面這一行的指令就可以把檔案給傳過去了。

cat arthurtoday.txt | nc 192.168.2.103 8888

注意看一下上面的這一行指令,你大概就會發現,nc 指令自己是無法傳檔的,它是被當做標準輸出/輸入裝置的方式來接收和輸出檔案的,因此,如果要透過 nc 指令來傳檔的話,就必需在 nc 指令前,先有個可以產出檔案來送給 nc 指令的動作才行,以阿舍的做法來說,透過 cat 指令來打開 arthurtoday.txt 檔,但是,不是送到螢幕,而是送給nc 指令,那麼 nc 就會檔案送到指定的 IP 和埠號去了

阿舍試了一下,nc 指令似乎不能傳送整個資料夾和多個檔案,不過,操作簡單又容易,傳檔的速度也不慢,因此,阿舍覺得 nc 指令比較適合在二台 Linux 或 Ubuntu 電腦臨時要傳檔時,但是,電腦上沒有安裝任何其他的 ftp 或檔案分享之類的軟體或服務時使用哩 !

來源