GNU/Linux >> Linux の 問題 >  >> Linux

Linux で FTP 経由でフォルダーを再帰的にダウンロードする方法

ncftp -u <user> -p <pass> <server>
ncftp> mget directory

Thibaut Barrère の回答を補足するために。

使った

wget -r -nH --cut-dirs=5 -nc ftp://user:[email protected]//absolute/path/to/directory

サーバー名の後の二重スラッシュに注意してください。スラッシュを追加しない場合、パスはユーザーのホーム ディレクトリからの相対パスになります。

  • -nH サーバー名にちなんで名付けられたディレクトリの作成を回避します
  • -nc 宛先に既に存在する場合、新しいファイルの作成を回避します (単にスキップされます)
  • --cut-dirs=5 /absolute/path/to/directory の内容を取得して、wget を起動したディレクトリに配置できます。数値 5 は、パスの 5 つのコンポーネントを除外するために使用されます。二重スラッシュは追加のコンポーネントを意味します。

通常はftp getを適切に処理するwgetに頼ることができます(少なくとも私自身の経験では)。例:

wget -r ftp://user:[email protected]/

-m も使用できます ミラーリングに適しています。現在は -r -N -l inf と同等です .

資格情報の詳細に特殊文字が含まれている場合は、--user を指定できます そして --password それを機能させるための引数。特定の文字を使用したカスタム ログインの例:

wget -r --user="[email protected]" --password="Pa$$wo|^D" ftp://server.com/

@asmaier が指摘したように、 -r であっても注意してください は再帰用で、デフォルトの最大レベルは 5 です:

-r
--recursive
    Turn on recursive retrieving.

-l depth
--level=depth
    Specify recursion maximum depth level depth.  The default maximum depth is 5.

サブディレクトリを見逃したくない場合は、ミラーリング オプション -m を使用することをお勧めします。 :

-m
--mirror
    Turn on options suitable for mirroring.  This option turns on recursion and time-stamping, sets infinite
    recursion depth and keeps FTP directory listings.  It is currently equivalent to -r -N -l inf
    --no-remove-listing.

lftp の場合 がマシンにインストールされている場合は、mirror dir を使用します .これで完了です。ディレクトリを再帰的にダウンロードする場合は、以下の Ciro のコメントを参照してください。


Linux
  1. Linuxターミナルでディレクトリを開いたり閉じたりする方法

  2. Linuxですべてのディレクトリのファイルを再帰的に検索する方法

  3. Wgetを使用してWebディレクトリからファイルを再帰的にダウンロードするにはどうすればよいですか?

  1. LinuxでsFTPを使用してファイル/ディレクトリをアップロードまたはダウンロードする方法

  2. Linuxでディレクトリの名前を変更する方法

  3. smbclient を使用してディレクトリを再帰的にダウンロードするにはどうすればよいですか?

  1. Linuxでディレクトリとフォルダを削除する方法は?

  2. Linuxでディレクトリをgzipで圧縮する方法

  3. Linuxでディレクトリサイズを取得する方法