これが可能かどうかわかりません。基本的に、私はscp私のホストにファイルを許可するスクリプトを書いています。これまでのところそれです。引数1はファイルであり、引数2は、私はそれがリモートサーバー上に置くことにしたいフォルダです:あなたは/知らないかもしれないこととして、私は「関数はdoesnの呼び出し時にリモートホスト上にディレクトリを作成するにはどうしたらいいですか?
function upload {
scp $1 [email protected]:$2
}
は、私が指定したディレクトリ場合存在しない場合、転送は失敗します。ディレクトリが関数内に存在するかどうかを確認する方法はありますか?存在しない場合は作成してください。
私はいつもsshを使ってディレクトリを作成する必要はありませんが、選択肢がなければ選択肢はありません。
これは私のためには機能しません(あて先のディレクトリが存在しないと不平を言うだけです) - 最近のバージョンのrsyncが必要ですか?しかし 'rsync -R'は、ローカルファイルが適切な名前のディレクトリにある場合、例えば' rsync -R'を使用して目的の効果を達成することができます: 'rsync -Rave ssh some/nonExisting/dirToCopyTo/fileToCopy ssh.myhost.net:/' –
@MartinKleppmann私は、これを使用していないディレクトリについて不平を言ってエラーを出すだけです。あなたは実際にこの作業を目撃しましたか?もしそうなら、私はrsyncプログラムについて何が違うのかを理解することに興味があります。 – DougW
ああ、コピーするディレクトリのレベルを1つだけ作成する必要がある場合は、このように動作します。私は/ var/www/myapp/test /に展開しようとしました。サーバが/ var/www /を持っていただけで、失敗しました。/var/www/myapp /を作成すると、テストフォルダが作成され、すべてがコピーされました。ディレクトリ構造のレベルを複数作成する必要がある場合は、以下の@ire_and_cursesのようなソリューションが必要になります。 – DougW