Macからコマンドラインで接続しているFTPサーバー上のディレクトリを複製したい
file
があるとします。食べたいfiles2
すべてのfile
のサブディレクトリとファイルを、元のディレクトリと同じディレクトリに置きます。これを達成する最も簡単な方法は何でしょうか?
編集:
mget
とmput
を使用すると、すべてのファイルをダウンロードして別のフォルダーに再度アップロードできますが、これは私が望んでいる/必要とするものではありません(このダウンロードアップロードでの重複を避けるために、この質問を始めましたデスクトップクライアントからのメソッド)
あなたが持っているのはUNIXコマンドラインではなく、あなたが持っているのはFTPセッションです。 FTPは主にファイルのアップロードとダウンロードを目的として設計されており、一般的なファイル管理用には設計されておらず、サーバー上で任意のコマンドを実行することはできません。特に、私の知る限り、サーバーでファイルのコピーをトリガーする方法はありません。ファイルをダウンロードして、別の名前でアップロードするだけです。
一部のサーバーはFTPプロトコルの拡張機能をサポートしており、これらの拡張機能の1つを使用してリモートファイルをコピーできる可能性があります。 help site
またはremotehelp
を試して、サーバーがサポートする拡張機能を確認してください。
UNIXコマンドラインが必要な場合は、rsh(r emote sh ell)または21世紀のより一般的なssh(s ecure sh ell)。これがWebホストの場合は、sshアクセスを提供しているかどうかを確認します。それ以外の場合は、システム管理者に連絡してください。しかし、答えが「いいえ」の場合でも驚かないでください。コマンドラインアクセスは、一部のマルチユーザーセットアップではセキュリティ違反となるため、提供されない正当な理由がある可能性があります。
lFTP でそれを行う方法は次のとおりです。
# lftp ftp_Host
user ftp_user ftp_pass
mirror source target (download entire directory tree)
mirror -R source target (reverse mirror; upload entire directory tree)
これは今は間違っていますが、コメントツリーが失われないように、削除を取り消したままにします
cp
はファイルとディレクトリをコピーします。あなたはそれに与えることができます-r
フラグを使用して、すべてを再帰的にコピーします。 file
を含むフォルダーから:
$ cp -r file files2
[〜#〜] lftp [〜#〜] FTPプロトコルが提供するものよりも上位のコマンドをサポートします。たとえば、mirror
コマンドは必要なものを提供します。
同様の機能を持つ他のプログラムがあります。 sitecopy は別の例です。