ssh経由で自宅サーバを操作し、外部のFTPサーバからファイルをダウンロードする事が多いです。自宅サーバは UTF-8 な Debian の為、相手のFTPサーバがWindows環境(ShiftJIS)だとキャラクタセットの差異が問題となってきます。
そこで、lftp では以下のようにすると、キャラクタセットを正しく変換し、操作する事が出来ます。
$ lftp lftp :~> set ftp:charset Shift_JIS lftp :~> open ftp.example.com lftp :~> user dyama パスワード: lftp dyama@ftp.example.com:/>
ファイルを取得する際によく使うコマンドは、
lftp dyama@ftp.example.com:~> help mget 使い方: mget [OPTS] <files> ワイルドカード展開によって選択された複数のファイルを取得します -c 継続してダウンロード、reget と同じ -d ファイル名と同じ名前のディレクトリを作成して、 取得したファイルを現在のディレクトリではなくそこに送る -E 転送が成功したらリモートファイルを削除する -a アスキーモードを使う (デフォルトではバイナリ) -O <base> ファイルが置かれるベースディレクトリか URL を指定する
また、大量のファイルを取得する際には queue コマンドにてキューとして追加すれば便利。
# ↓ダウンロードキューに追加 lftp dyama@ftp.example.com:~> queue get "ほげほげ.mp4" # ↓キューを確認 lftp dyama@ftp.example.com:~> queue ftp://dyama@ftp.example.com/現在実行中: [1] get ほげほげ.mp4
また、ローカルに対してコマンドを発行したい場合は、
lftp dyama@ftp.example.com:~> !ls lftp dyama@ftp.example.com:~> !pwd
のように、コマンドの頭に”!”を付けます。
※ 2020/07/02 度重なるブログ移転・ブログシステムのアップデートにより崩れた記事を校正。