web-dev-qa-db-ja.com

FTP経由でディレクトリを複製する最も簡単な方法

Macからコマンドラインで接続しているFTPサーバー上のディレクトリを複製したい

fileがあるとします。食べたいfiles2すべてのfileのサブディレクトリとファイルを、元のディレクトリと同じディレクトリに置きます。これを達成する最も簡単な方法は何でしょうか?

編集:

mgetmputを使用すると、すべてのファイルをダウンロードして別のフォルダーに再度アップロードできますが、これは私が望んでいる/必要とするものではありません(このダウンロードアップロードでの重複を避けるために、この質問を始めましたデスクトップクライアントからのメソッド)

8
Trufa

あなたが持っているのは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)
4
mbrixner

これは今は間違っていますが、コメントツリーが失われないように、削除を取り消したままにします

cpはファイルとディレクトリをコピーします。あなたはそれに与えることができます-rフラグを使用して、すべてを再帰的にコピーします。 fileを含むフォルダーから:

$ cp -r file files2
1
Michael Mrozek

[〜#〜] lftp [〜#〜] FTPプロトコルが提供するものよりも上位のコマンドをサポートします。たとえば、mirrorコマンドは必要なものを提供します。

同様の機能を持つ他のプログラムがあります。 sitecopy は別の例です。

1
ephemient