使用指令傳輸檔案(SCP)

 一開始主要是為了解決把檔案傳送到Mac電腦之中,當然傳送檔案其實方法有很多,其實我一開始也是單純使用Mac裡面的分享檔案夾方式(smb)來讀取,但是不知道為什麼在一次系統更新後就連不上了(沒有詳細找為什麼),想想反正Mac可以用SSH連線,我每次要傳的檔案也不多,應該用指令就可以搞定了,(好吧!因為我實在懶得去找Free的ftp server)

網路上查了可以使用SCP指令,用過確實可以,稍作紀錄以便以後使用時參考。

首先,網路上是說要安裝openssh-client(本機端)、openssh-server(遠端),但我在測試時win11以及macOS Ventura直接可以使用,所以這步驟我就省略了。

指令部分使用的是SCP(可以直接使用)

傳送語法:

scp [參數] filename username@remoteaddress:remotepath

其中:

  • filename:本地端檔案(可加入路徑)
  • username:遠端登入帳號
  • remoteaddress:遠端位址(我是使用IP)
  • remotepath:遠端檔案放置位置
  • 參數(可用可不用 空格格開即可):
    • -p:保留資訊
    • -C:壓縮後再傳輸
    • -r:遞迴傳送資料夾內的資料(會保留資料夾)
    • -P:指定連接埠
    • -v:詳細資訊
    • -l:限制速度(以Kbit/s為單位)
    • -4:指定使用IPv4
    • -6:指定使用IPv6
接收語法(尚未使用過,先記錄):

scp username@remoteaddress:remotefile loacalpath
  • remotefile:遠端端檔案(可加入路徑)
  • username:遠端登入帳號
  • remoteaddress:遠端位址(我是使用IP)
  • localpath:本地端路徑(通常使用 ./)

附註:

  1. 其實我不知道如何確定遠端電腦路徑,所以又用ssh連到電腦查詢,但感覺這樣很笨。
  2. 遇到目錄名稱有空格,網路上的說法是加上\,但是scp看不懂,最後是用ssh連線把目錄名稱修改,修改指令使用: mv source destination
  3. 使用遞迴傳檔後,他是連同整個目錄都傳過去,所以還要執行:
    1. 把目錄內的資料搬到上一層: mv * ../ 
    2. 刪除目錄: rm -r folderpath(看文章似乎用 -d也可以,只要是空檔案夾,-r就是遞迴全刪,風險比較大)

留言

這個網誌中的熱門文章

製作USB的多系統重灌工具

Ubuntu下建立大量帳號

複製造字檔案