コマンド ライン ftp クライアントを使用してフォルダーを ftp しようとしていますが、これまでのところ、個々のファイルを取得するために「get」しか使用できませんでした。
12 に答える
通常はftp getを適切に処理するwgetに頼ることができます(少なくとも私自身の経験では)。例えば:
wget -r ftp://user:pass@server.com/
-m
ミラーリングに適したものを使用することもできます。現在は と同等-r -N -l inf
です。
資格情報の詳細に特殊文字が含まれている場合は、--user
および--password
引数を指定して機能させることができます。特定の文字を使用したカスタム ログインの例:
wget -r --user="user@login" --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.
Thibaut Barrèreの回答を補足するために。
使った
wget -r -nH --cut-dirs=5 -nc ftp://user:pass@server//absolute/path/to/directory
サーバー名の後の二重スラッシュに注意してください。余分なスラッシュを付けない場合、パスはユーザーのホーム ディレクトリからの相対パスになります。
-nH
サーバー名にちなんで名付けられたディレクトリの作成を回避します-nc
宛先にすでに存在する場合、新しいファイルの作成を回避します(スキップされるだけです)--cut-dirs=5
/absolute/path/to/directory の内容を取得して、wget を起動したディレクトリに配置できます。数値 5 は、パスの 5 つのコンポーネントを除外するために使用されます。二重スラッシュは、追加のコンポーネントを意味します。
ncftp -u <user> -p <pass> <server>
ncftp> mget directory
lftp
がマシンにインストールされている場合は、 を使用しますmirror dir
。これで完了です。ディレクトリを再帰的にダウンロードする場合は、以下の Ciro のコメントを参照してください。
scp
の代わりに使用できる場合ftp
は、-r
オプションがこれを行います。FTP よりも最新のファイル転送メカニズムを使用できるかどうかを確認します。
代わりに WGet を使用してください。HTTP および FTP プロトコルをサポートしています。
wget -r ftp://mydomain.com/mystuff
幸運を!
Linuxにインストールできる「ncftp」があります。これは FTP プロトコルで動作し、ファイルとフォルダーを再帰的にダウンロードするために使用できます。Linuxで動作します。再帰的なフォルダ/ファイル転送に使用され、正常に動作しています。
このリンクを確認してください... http://www.ncftp.com/
wget -r ftp://url
Redhat と Ubuntu で完璧に動作
可能であれば、リモート マシンのディレクトリを作成することを強くお勧めしますtar
。かなりのサイズのディレクトリのbzip
場合gzip
、圧縮/解凍する時間に見合った帯域幅の節約が得られるでしょう。
コマンドライン FTP に固執したい場合は、NcFTP を試す必要があります。次に、 get -R を使用して再帰的にフォルダーを取得できます。完成度も上がります。
PROMPT コマンドでプロンプトを切り替えます。
使用法:
ftp>cd /to/directory
ftp>prompt
ftp>mget *