ファイル転送を行うコマンドUNIXコマンド。(Windowsコマンドにも有る)
このコマンドを実行すると、対話形式でコマンドを入力することにより ファイル転送が出来る。
ftp内で使用するコマンドの概要は以下の通り。[2006-05-27]
なお、先頭に「!」を付けることで、ローカルのシェルのコマンドを実行することが出来る。
リモート | ローカル | 説明 | |
---|---|---|---|
UNIX | Windows | ||
open 接続先 |
接続する。(IPアドレスやホスト名を指定する) | ||
user ユーザー パスワード |
ユーザーIDとパスワードを指定する。-nオプション付でftpを起動する必要有り。 | ||
close |
接続を終了する。 | ||
status |
現在の状況(接続中かどうか等)を表示する。 | ||
bye |
ftpを終了する。 | ||
ascii |
アスキー転送モードに切り替える。 | ||
bin |
バイナリ転送モードに切り替える。 | ||
type |
現在の転送モードを表示する。 | ||
pwd |
!pwd |
!cd |
現在のディレクトリを表示する。 |
cd ディレクトリ |
lcd ディレクトリ |
指定ディレクトリへ移動する。ローカルの「!cd」では移動できない。 | |
lcd |
ホームディレクトリへ移動する。Windowsの場合、ftp起動時のディレクトリ。 | ||
dir |
!ls |
!dir |
ディレクトリの内容を表示する。 |
mkdir ディレクトリ |
!mkdir DIR |
!md DIR |
ディレクトリを作成する。 |
rmdir ディレクトリ |
!rmdir DIR |
!rd DIR |
ディレクトリを削除する。 |
rename 旧 新 |
!mv 旧 新 |
!ren 旧 新 |
ファイル名を変更する。 |
delete ファイル |
!rm FILE |
!del FILE |
ファイルを削除する。 |
mdelete 複数ファイル |
複数ファイルを削除する。ワイルドカード使用可。 | ||
quote コマンド |
リモートでコマンドを実行する。例:「quote site chmod 755 foo.txt 」
[2007-12-07] |
||
get ファイル |
リモートからローカルへファイルを転送する。 | ||
mget 複数ファイル |
リモートからローカルへ複数ファイルを転送する。ワイルドカード使用可。 | ||
put ファイル |
ローカルからリモートへファイルを転送する。 | ||
mput 複数ファイル |
ローカルからリモートへ複数ファイルを転送する。ワイルドカード使用可。 |
次のようなシェルスクリプトを作ることが出来る。パスワードは別途入力しなきゃならないのでncftpよりは不便だけど。
#!/bin/sh ftp << EOF !echo input password for ユーザー open IPアドレス ユーザー ←ユーザーIDを記述。実行時には このユーザーのパスワードを手入力する必要がある。 ls ←ここにftpコマンドを記述していく。 !echo end bye EOF
-nオプションを使うと、パスワードもコマンドの引数で指定できるようだ。[2006-05-27]
#!/bin/sh
ftp -n << EOF
!echo start
open IPアドレス
user ユーザー パスワード ←「-n」を付けないと有効でない
ls
!echo end
bye
EOF
「user ユーザー パスワード」文は、-nオプションを付けていないと使えない。
すなわち、普通の対話モードと同じくユーザーとパスワードが聞かれる。
なお、パスワードだけ別途入力したいなら、ヒアドキュメント内で変数を使うことも出来る。
#!/bin/sh echo "input password for ユーザー" read PASS ←パスワード入力 ftp -n << EOF !echo start open IPアドレス user ユーザー $PASS ls !echo end bye EOF
-vオプションを付けないと、結果が標準出力に出力されない。
(対話モードのときは、デフォルトで画面(標準出力)へ出力されるようになっている)
% ftp -nv < ftp_command_file.txt
-Tオプションで、タイムアウト時間(秒)を設定できる。
% ftp -nT 60 < ftp_command_file.txt
接続する相手のマシンが起動していないとき等の接続待ちは、この時間でタイムアウトしてくれる。