MacやLinuxでFTPを扱う場合、コマンドラインではftp
コマンドが標準で使えます。
ただし、このコマンドは素朴すぎて、実務では少し煩雑に思えます。
一方、FileZillaなどのGUI型FTPクライアントはかなり高機能なものも無料でありますが、コマンドラインで作業を済ませたい場合にはかえって煩雑です。
そこで、標準のftp
コマンドよりもベターなCUI(CLI)型のFTPクライアントであるNcFTP
を紹介します。
(注意:SSH経由のFTP(SFTP)が使える場合は、sftp
の使用を検討してください。)
特徴
- 接続したホストをブックマークに登録できる。
- 初回接続時に
bookmark
コマンドで登録すれば、次回からは、ブックマークを使ってホストにアクセスできる
- 初回接続時に
- get/putでワイルドカードや各種オプションが使用できる。
- 付属の
ncftpget
/ncftpput
コマンドを使えば、Unixシェルから直接get/putができる。
インストール
Macの場合(Homebrew)
brew install ncftp
Linuxも、各種パッケージマネージャに入っていると思いますので、説明は割愛します。
使い方
接続
ncftp -u [username] [hostname]
すると、パスワードを聞かれるので入力します。次のプロンプトが出たら成功です:
User foo logged in.
Logged in to hogehoge.com.
ncftp / >
ブックマーク
接続できたら、その設定をブックマークに入れておきましょう。
ncftp / > bookmark
Enter a name for this bookmark, or hit enter for "hoge": [付けたいブックマーク名を入力]
You logged into this site using a password.
Would you like to save the password with this bookmark?
Save? [no] yes ←ここでyesと入力する
Bookmark "foo" saved.
ブックマークされた設定は、bookmarks
コマンドで参照できます。
ダウンロード(get)/アップロード(put)
ncftp
本体を使う場合
- リモートからローカルへファイルをダウンロードしたいとき: get
- ローカルからリモートへファイルをアップロードしたいとき: put
get/putともに、ワイルドカードが使えます。再帰的に(サブディレクトリごと)get/putしたい場合は-R
オプションを付けます。
get file1 file2
get README*
get -R * ## ディレクトリ全体をダウンロード
put xx.zip yy.zip
put *.zip
put -R *
付属ツールncftpget
/ncftpput
を使う場合
あらかじめブックマークを登録しておけば、その名前のサーバに対して、Unixシェルから直接get/putができます。
ncftpget [options] bookmark-name local-directory remote-files...
ncftpput [options] bookmark-name remote-directory local-files...
設定
- 設定の確認は
prefs
コマンドで確認できます。 - 設定を変える場合は、
set <option> <value>
で設定できます。
自分の設定:
set auto-resume yes
set autosave-bookmark-changes yes
set pager more
set save-passwords yes
set show-status-in-xterm-titlebar yes
具体的な設定項目はMan Page(man ncftp
またはncftp(1) manual page)の「Variable Reference」の項を参照してください。
参考
NcFTP Software
http://www.ncftp.com/
ncftp(1) manual page
http://www.ncftp.com/ncftp/doc/ncftp.html
Man page of NcFTP (日本語訳)
https://linuxjm.osdn.jp/html/ncftp/man1/ncftp.1.html
ncftp - 高機能 ftpクライアント - 会津大学UNIXウィキ
http://technique.sonots.com/?UNIX%2F%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%2F%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88%2Fncftp