Linux

scp遠端文件到本地機器

  • May 15, 2015

作為腳本的一部分,我正在嘗試從遠端站點複製文件。但是遇到了錯誤。對我來說這聽起來有點奇怪,因為一切聽起來都不錯:

#aaa="/path/to/some file with spaces(and brackets).txt"
....
#scp user@example.com:"$aaa" /test/
bash: -c: line 0: syntax error near unexpected token `('
bash: -c: line 0: `scp -f /path/to/some file with spaces.txt'

更新:括號問題…

您需要轉義每個空格和括號:

#!/bin/bash

aaa='/path/to/some\ file\ with\ spaces\(and brackets\).txt'
scp user@example.com:"$aaa" /test/

順便說一句,$aaa除了雙引號之外,更友好的選擇是用單引號括起來:

#!/bin/bash

aaa='/path/to/some file with spaces(and brackets).txt'
scp user@example.com:"'$aaa'" /test/

下面為我工作。我認為你只需要轉義空格、括號或其他任何東西,你應該很好。

#!/bin/bash

aaa="/tmp/untitled\ text\ 2.txt"

scp -r user@example.com:"$aaa" .

引用自:https://serverfault.com/questions/692364