S-JIS[2003-10-06/2007-12-07] 変更履歴

ftp 〔IPアドレス〕

ファイル転送を行うコマンドUNIXコマンド。(Windowsコマンドにも有る)


概要

このコマンドを実行すると、対話形式でコマンドを入力することにより ファイル転送が出来る。

ftp内で使用するコマンドの概要は以下の通り。[2006-05-27]
なお、先頭に「!」を付けることで、ローカルのシェルのコマンドを実行することが出来る。

ftpのコマンド
リモート ローカル 説明
UNIX Windows
open 接続先 接続する。(IPアドレスやホスト名を指定する)
user ユーザー パスワード ユーザーIDとパスワードを指定する。-nオプション付でftpを起動する必要有り。
close 接続を終了する。
status 現在の状況(接続中かどうか等)を表示する。
bye
quit
ftpを終了する。
ascii アスキー転送モードに切り替える。
bin バイナリ転送モードに切り替える。
type 現在の転送モードを表示する。
pwd !pwd !cd 現在のディレクトリを表示する。
cd ディレクトリ lcd ディレクトリ 指定ディレクトリへ移動する。ローカルの「!cd」では移動できない。
  lcd ホームディレクトリへ移動する。Windowsの場合、ftp起動時のディレクトリ。
dir
ls
!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 複数ファイル ローカルからリモートへ複数ファイルを転送する。ワイルドカード使用可。

UNIXの場合

シェルスクリプトで実行する方法

次のようなシェルスクリプトを作ることが出来る。パスワードは別途入力しなきゃならないので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

接続する相手のマシンが起動していないとき等の接続待ちは、この時間でタイムアウトしてくれる。


UNIXコマンドへ戻る / Windowsコマンドへ戻る
メールの送信先:ひしだま