2014-09-05 66 views
0

我試圖使用scp通過shell腳本複製文件。我的一段代碼是:使用scp在文件名中使用空格複製文件文件

for file in $result; 
do 
scp [email protected]:"$feed" destination 
done 

其中結果中包含要複製的文件列表。但它並不複製其名稱中有空格的文件,例如:

new assignment.xls 

請提供建議。

+0

不應該是「$ file」嗎? – MightyPork 2014-09-05 06:49:42

+0

爲什麼';'在第一行結尾(在'$ result'後面)? – NeronLeVelu 2014-09-05 08:06:04

+0

是的抱歉打印錯誤..應該是$文件 – 2014-09-05 09:23:41

回答

0
for file in $result; 
do 
name=`echo $file | sed 's/ /\\ //'` 
scp [email protected]:"$name" destination 
done 
+0

scp username @ hostname:「/$ feed「destinat離子....這是怎麼應該給腳本 – 2014-09-05 07:22:08

+0

已經更新,只是改名字空白 – 2014-09-05 07:55:38

0
echo "${result}" | while read FileName 
do 
    scp "[email protected]:${FileName}" destination 
done 

(改編爲while read代替for in}

封裝的整個源代碼,而不僅僅是文件/路徑。destionation可能還需要一個報價是空間或其他元字符是內部

+0

這給我一個消息,參數列表太長..我的要求是一次複製一個文件到本地機器通過scp然後從本地到hdfs位置。由於我在本地 – 2014-09-05 10:42:10

+0

中使用了空間限制,因此在讀取時使用以確保每次迭代一個文件(因此結果中每行一個文件) – NeronLeVelu 2014-09-05 12:28:00