bash - and - scp loop password



如果沒有ssh-ing,它如何在遠程主機上創建目錄? (4)

我不確定這是否可行。 基本上,我正在編寫一個腳本,允許我將文件scp到我的主機。 到目前為止這是它。 參數1是文件,參數2是我希望它放在遠程服務器上的文件夾:

function upload {
    scp $1 [email protected].myhost.net:$2
}

您可能/可能不知道,如果我在調用函數時指定的目錄不存在,則傳輸失敗。 有沒有辦法檢查函數中是否存在該目錄,如果沒有,則創建它。

我寧願不必每次都使用ssh並創建目錄,但如果我別無選擇,那麼我別無選擇。



如果你做一個遞歸的scp(-r),它也會復制目錄。 因此,如果您在本地遠程主機上創建所需名稱的目錄,將文件複製到其中,然後遞歸複製,將創建目錄,其中包含文件。

有點尷尬,但它會做的工作。


我假設你的意思是你不想交互式登錄並手動創建目錄,而不是你想要完全避免使用ssh ,因為你仍然需要一個密碼或公鑰與scp

如果以非交互方式使用ssh是可以接受的,那麼您可以使用cat over ssh來傳輸文件:

cat $1 | ssh $2 "mkdir $3;cat >> $3/$1"

哪裡

$1 = filename 
$2 = [email protected]
$3 = dir_on_server

如果目錄已經存在, mkdir抱怨,但文件仍然被複製。 現有目錄不會被覆蓋。 如果目錄不存在, mkdir將創建它。






scp