FTP サイトから curl を使用して emp* という名前のすべてのファイルをダウンロードする方法

FTP サイトから curl を使用して emp* という名前のすべてのファイルをダウンロードする方法

emp* のようなファイル名を持つ FTP サイト ディレクトリからダウンロードされたすべてのファイルを取得するにはどうすればよいですか。

提案してください。

答え1

このbashワンライナーを CentOS 6.5 FTP ミラーに対してテストしたところ、正常に動作しました。ただし、悪用を防ぐために匿名化しています。

for i in `curl -i ftp://ftp.example.com/pub/centos/6.5/updates/i386/repodata/ | awk '{print $9}' | grep ^8`; do curl -O http://ftp.eample.com/pub/centos/6.5/${i} ; done

説明すると、これは FTP サーバーにアクセスし、ディレクトリ リストを取得し (最初の curl)、データを awk にパイプしてファイル名のみを返します。最後に、これは grep にパイプされ、要件をシミュレートするために、数字 8 で始まるファイルのみに一致しますemp*

フィルタリングされたファイル名が変数になりi、単純な for ループを使用して、2 番目の curl リクエストの URL に追加することで各ファイル名を取得します。最終的に、次の 2 つのファイルが作成されました。

-rw-r--r--  1 adam  staff      362 11 Jul 13:22 819455e9f840760fcbdccf0283e4324ceabc8512f246e911d39424760ed1729e-primary.xml.gz
-rw-r--r--  1 adam  staff      360 11 Jul 13:22 8e4d3dd261375d31b35b6870e187d841633c68a400e4d11bb7234fea517cdbaa-other.xml.gz

答え2

何か見落としがなければ、ディレクトリに cd して「mget emp*」を使用するだけです。すべてのファイルに Y/N で応答したくない場合は、「prompt」設定 (トグル コマンド) を変更してください。

関連情報