2012-10-16 359 views
27

我想知道如果scp會在遠程服務器上不存在目標文件夾,它將創建目標文件夾。例如,這會工作嗎?如果不存在,scp是否會創建目標文件夾

scp -r /data/install/somefolder [email protected]:/data/install/somefolder 

這裏的文件夾/data/install/somefolder不FTP服務器上存在,所以將這個命令創建呢?

N.B.我已閱讀了有關rsync,但我不確定它是如何工作的或如何使用它。

+0

什麼是SSH/SCP使用說明書,說什麼? – Jens

回答

20

簡答:沒有。

...但rsync呢,這就是爲什麼我在我的盒子上使用別名scp到rsync -Pravdtze ssh。是的,這是很多開關,它們結合起來產生我的首選rsync行爲。由於rsync提供了一套非常廣泛的開關和選項,我建議你對它進行一些研究,看看最適合你的需求。 Manpage是一個開始的好地方,但有很多信息可以輕鬆獲取。這是一個decent list of examples

編輯:實際上,在您發佈的特定情況下,該文件夾將被創建,因爲這是您正在複製的文件夾。但是,如果您嘗試將其複製到[email protected]:somenonexistentfolder/somefolder,則它會失敗。

+3

斷開的鏈接。 :( – badp

+0

@badp用新鏈接編輯答案。 – Jarmund

+0

@Jarmund剛好及時;) – germs12

33

爲了實現與ssh和scp(而不是rsync的)任務:

解決方案

讓我們打入2步:

1.創建目錄,如果丟失:

ssh [email protected] 'mkdir -p /data/install/somefolder' 

2.複製到:

scp -r /data/install/somefolder [email protected]:/data/install/somefolder 

把它們放在一起

server="[email protected]" 
destiny="/data/install/somefolder" 
src="/data/install/somefolder" 
ssh "$server" "mkdir -p $destiny" && scp -r "$src" "$server:$destiny" 
相關問題