curlコマンドでFTP:ファイルの一覧表示、アップロード、ダウンロード

目次

スポンサードリンク

curlコマンドはサーバーとの間でデータ転送するためのツールです。用途の似たコマンドに wgetコマンドがありますが、wgetコマンドと比較してcurlコマンドは対応するプロトコルが豊富な点が特徴です。

curlコマンドでは FTP もサポートしており、サーバーにあるファイルの一覧表示や、ファイルのアップロード、ダウンロードができます。

サーバーのファイルを一覧表示する方法

curlコマンドに -u オプションで、コロンで区切ったログイン用のユーザーIDとパスワードを指定します。その後、ftp:// に続けてサーバーのホスト名やディレクトリを指定します。 下記はサンプルです。ホスト名などは仮のものに置き換えてます。

[root@hostname ~]# curl -u USER_ID:PASSWORD  ftp://example.jp/
drwx---r-x  11 USER_ID users         512 Oct 30  2023 .
drwxr-xr-x 275 root     wheel        5632 May 10 21:01 ..
-rw-r--r--   1 USER_ID users         773 Nov 29  2018 .cshrc
-rw-r--r--   1 USER_ID users         762 Nov 29  2018 .profile
drwx------   2 USER_ID users         512 Nov 18  2009 .ssh
drwx------   5 USER_ID users         512 Nov  1  2023 MailBox
drwx------   2 USER_ID users         512 Nov 18  2009 db
drwxr-xr-x   3 USER_ID users        3072 May 11 00:06 log
drwxr-xr-x   6 USER_ID users         512 Apr 22 23:34 www

サーバーのファイルをダウンロードする方法

-O オプションを指定し、ftp://に続けてファイルのパスを指定することで、ファイルをダウンロードすることができます。 また、-Oオプションを付けないで実行すると、ファイルの内容を標準出力に出力することができます。

[root@hostname ~]# curl -u USER_ID:PASSWORD -O ftp://example.jp/www/blog/index.xml
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                Dload  Upload   Total   Spent    Left  Speed
100  251k  100  251k    0     0  1367k      0 --:--:-- --:--:-- --:--:-- 1375k

サーバーにファイルをアップロードする方法

-T オプションに続けてアップロードしたいファイルを指定します。デフォルトではバイナリーモードでの転送になります。asciiモードで転送したいときは –use-asciiオプションを指定します。また、-aオプションを指定するとファイルを上書きではなく追記します。

[root@hostname ~]# curl -T index.xml -u USER_ID:PASSWORD ftp://example.jp/
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                Dload  Upload   Total   Spent    Left  Speed
100  251k    0     0  100  251k      0  1832k --:--:-- --:--:-- --:--:-- 1823k

複数のファイルをアップロードしたい場合は、以下のようにカンマで区切り複数ファイルを指定します。

[root@hostname ~]# curl -T "{index.xml,index.html}" -u USER_ID:PASSWORD ftp://example.jp/
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                Dload  Upload   Total   Spent    Left  Speed
100  251k    0     0  100  251k      0  1752k --:--:-- --:--:-- --:--:-- 1760k
100 20430    0     0  100 20430      0   278k --:--:-- --:--:-- --:--:--  278k

複数ファイルをアップロードする際の書式は以下の書式が使えます。

curl -T "{file1,file2}" http://www.uploadtothissite.com

or even

curl -T "img[1-1000].png" ftp://ftp.picturemania.com/upload/



Linuxコマンドについて学べるおすすめ書籍
Linuxコマンドの知識は、プログラマにとって長く役立つ知識です。 私はこちらの書籍で一通り知識を抑えました。基本から丁寧に解説されています。

Linux教科書 図解でパッとわかる LPIC/LinuC
はじめてLPICを受ける方向け、手を動かしながらLinuxについて学びたい方におすすめ。30日間の無料体験もできる『Kindle Unlimited』でも読むことができます。

Linuxコマンドについて徹底的に学べるUdemy講座
もう絶対に忘れない Linux コマンド【Linux 100本ノック+名前の由来+丁寧な解説で、長期記憶に焼き付けろ!】 icon