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