2016-03-01 62 views
0

我有一個Arduino Yun,並且想要爲Yun設置服務器。scp命令 - 通過ssh傳輸文件夾

所以,我想要的是包含一個PY文件和index.html的我芸文件夾複製

我用MAC終端做這個操作

命令看起來像這樣

scp -r /Users/gudi/Desktop/LobsterHeartRate [email protected]:/mnt/sda1 

,然後終端提示輸入密碼

我輸入後,它顯示

scp: /mnt/sda1/LobsterHeartRate: Not a directory 

我沒有鍵入到/ mnt/sda1的/ LobsterHeartRate爲什麼會出現這個錯誤

+0

但它在'scp'命令中顯示'LobsterHeartRate'。至少可以說,你的問題很不明確。 –

+0

你有你的來源;你需要在你的目標中創建目錄或指定文件[/用戶/ gudi /桌面/ LobsterHeartRate/*]在您的源 – user1612272

回答

0

由於@JensHöpken筆記,您的文章是有點稀疏。但試圖讀取您的文章的行之間我懷疑LobsterHeartRate是您的本地系統上的目錄,但在您的目標系統中名爲LobsterHeartRate的FILE。這可能正好發生在目錄樹的頂部,或者您可能在樹的下方有相同名稱的目錄/文件。 scp -rv可能有助於解決此處的任何混淆。

要小心: scp -r解析了符號鏈接。如果你想保留符號鏈接,你需要做別的事情。由於歷史原因,我使用以下內容,儘管cpio找到前端爲細粒度文件選擇打開了有趣的可能性。

 (cd /Users/gudi/Desktop && tar -cf - LobsterHeartRate) | 
     ssh [email protected] 'cd /mnt/sda1 && tar -xf -'

爲了安全的「空運行」,您可以將-xf更改爲-tf。如果任何先前的命令失敗,則需要使用鏈來防止發生壞事。

聲明:任何調試都留給學生練習。

+0

嗨吉爾伯特,我試着你的代碼在Mac終端。它現在顯示'tar:無法創建目錄'LobsterHeartRate':文件退出'和'tar:無法刪除舊文件LobsterHeartRate/._。DS_Store:不是directory'你介意告訴我這些手段非常感謝 –

+0

,當我使用TF代替XF,它顯示了'LobsterHeartRate/ LobsterHeartRate /._ DS_Store LobsterHeartRate/.DS_Store LobsterHeartRate /模板/ LobsterHeartRate /._ Measuring.py LobsterHeartRate/Measruing.py LobsterHeartRate/templates /._index.html LobsterHeartRate/remplates/index.html' –

+0

這讓我想知道在兩個系統上哪些條目存在,哪些不存在。 [1]在本地,嘗試(cd/Users/gudi/Desktop && ls -l)在那裏檢查LobsterHeartRate。然後用ssh [email protected]'namei/mnt/sda1/LobsterHeartRate'檢出目標系統上的路徑。 – Gilbert

0

您的代碼

scp -r /Users/gudi/Desktop/LobsterHeartRate [email protected]:/mnt/sda1 

要求遠程目錄/mnt/sda1存在。這看起來不像你的情況。請使用ssh [email protected] ls /mnt/sda1進行檢查。

scp是一個簡單的工具,它不允許您即時重命名目錄,並且目標目錄必須存在。你可以試試

scp -r /Users/gudi/Desktop/LobsterHeartRate [email protected]:/mnt/ 
ssh [email protected] mv /mnt/LobsterHeartRate /mnt/sda1 

左右,如果它會滿足你的需求。但是複製更多的文件,rsync通常更合適。查看它的手冊頁並下次嘗試。