SFTP mget および get コマンドは、複数のフォルダまたはファイルを 1 つのサーバディレクトリにコピーします。

SFTP mget および get コマンドは、複数のフォルダまたはファイルを 1 つのサーバディレクトリにコピーします。

1つのコマンドを使用して、同じディレクトリ内の複数のフォルダをコピーする必要があります。だから最初にこれをしました。

sftp> mget -r folder1 folder2

このコマンドはfolder1ターゲットサーバーにコピーされますが、名前はfolder2

おそらく、次のことを行う必要があります。しかし、私は試していませんでした。

sftp> get -r folder1 && sleep 5 && get -r folder2

私はこれを試していませんが、うまくいくと思います。

より良い選択肢がありますか?

ベストアンサー1

mgetsftpのサブコマンドは次のとおりです。ニックネームget:

static const struct CMD cmds[] = {
    { "bye",    I_QUIT,     NOARGS  },
    ...
    { "get",    I_GET,      REMOTE  },
    { "mget",   I_GET,      REMOTE  },
    ...
};

これgetサブコマンド構文は次のとおりです。

 get [-afPpr] remote-path [local-path]

get1 つ以上の引数を指定すると、mget2 番目の引数を最初の引数の名前変更先として扱います。したがって、一度に複数のディレクトリを検索することはできず、個別にインポートする必要があります。

mget -r folder1 
mget -r folder2

sftp構文はシェルスタイルのコマンド接続も許可しないため、次のコマンドは使用できませんget -r folder1 && ...。またsleep、他の目的(ローカルプロセスの監視、ネットワークを介した数秒の節約など)で遅延が必要ない限り、getコマンド間を試す必要はありません。

あるいは、次の点をsftp考慮してくださいscp

scp -r user@host:folder1 user@host:folder2 /local/directory

...再帰的にコピーされます。離れて folder1そしてfolder2ディレクトリ地元の /local/directory

おすすめ記事