Scp

嘗試複製文件時出現 scp 錯誤

  • August 30, 2018

scp用來將文件從我的 android 傳輸到我的 MacBook,這就像一個魅力。但是我的 MacBook 上有一個文件夾John's folder,所以當我嘗試在該目錄中復製文件時 scp macbook@192.168.0.3:/Users/macbook/desktop/John\'s\ folder/file storage/folder

它拋出一個錯誤

unexpected EOF error while looking for matching \`’\`

unexpected end of file

我該如何解決這個問題?

這很有趣。我看到的其他答案是告訴您將轉義的引號和轉義的空格換成帶引號的字元串。實際上它們是等價的,所以你不會看到任何變化(a\'\ b與 shell 相同"a' b")。

這裡的問題在於遠端系統scp上解釋給出它的命令行的方式。

例如,這將起作用:

scp John\'s\ folder/file localhost:/tmp/dst

但這會失敗:

scp localhost:/tmp/src/John\'s\ folder/file /tmp/dst

(我已經用於localhost範例;您應該user@host根據自己的情況使用。)

如果你在上麵包含-v( verbose ) 標誌,scp你可以準確地看到導致失敗的原因:

debug1: Sending command: scp -v -f /tmp/src/John's folder/file
bash: -c: line 0: unexpected EOF while looking for matching `''
bash: -c: line 1: syntax error: unexpected end of file

這裡不幸的解決方案是您需要兩次轉義特殊字元(包括空格) - 一次用於本地 shell,一次用於遠端 shell:

scp localhost:"/tmp/src/John\'s\ folder/file" /tmp/dst

引用自:https://unix.stackexchange.com/questions/438791