web-dev-qa-db-ja.com

親ディレクトリを作成せずにwgetでディレクトリをミラーリングするにはどうすればよいですか?

次のように、FTP経由でフォルダーをミラーリングします。

wget --mirror --user=x --password=x ftp://ftp.site.com/folder/subfolder/evendeeper

ただし、次のようなディレクトリ構造は作成しません。

ftp.site.com->フォルダー->サブフォルダー-> evendeeper

ただ欲しい:

より深い

そして、その下にあるものが結果の構造になります。サーバー上のevendeeperのサブディレクトリにサブディレクトリが作成されている限り、evendeeperの内容が現在のディレクトリに収まることも許容されます。

私は-npオプション、親ページへのリンクをたどらないようにするドキュメントによると(FTP経由でミラーリングしているバイナリファイルの問題ではありません)。私は-ndオプション。ただし、これにより、evendeeperのサブディレクトリであっても、ディレクトリ構造が作成されなくなります。

コマンドラインベースで、Ubuntuパッケージとしてすぐに利用でき、wgetのように簡単に自動化できる限り、代替案を検討します。

45
Tom Boutell

次のようなパスの場合:ftp.site.com/a/b/c/d

-nHは、すべてのファイルをディレクトリにダウンロードしますa/b/c/dは現在のディレクトリにあり、-nH --cut-dirs=3は、すべてのファイルを現在のディレクトリのdディレクトリにダウンロードします。

61
vs_inf

-np(親なし)オプションはおそらく-L 1(私の前にwgetをインストールしないでください)、これは再帰を1レベルに制限します。

編集。 OK。ああ...たぶん私はコーヒーを飲むまで待つべきだ.. --cutまたは同様のオプション。指定した数のディレクトリを出力パスから「カット」できるため、/a/b/c/d、2カットすると、wgetはc/dローカルマシン上

9
Marc B

代わりに:

-nH --cut-dirs=1

つかいます:

-nH --cut-dirs=100

これにより、より多くのディレクトリがカットされ、フォルダーは作成されません。

注:100 =作成をスキップするフォルダーの数。 100は任意の数に変更できます。

8
Tony TCG