scpコマンドはファイルやディレクトリの転送を 一度しか行えません. sftpコマンド(Secure File Transfer Protocol)を使うことによって,リモートホストに一定時間ログインし,ファイルの転送を何度でも行えます.
リモートホスト ccz03.sfc.keio.ac.jp にユーザt03000tf がログインする例を示します. はじめてログインホストに接続する際に,接続の確認メッセージが表示されるので`yes'と入力します. 接続に成功するとパスワードを聞かれるので CNS のパスワードを入力し,<ENTER>を押します.
% sftp t03000tf@ccz03.sfc.keio.ac.jp <ENTER> Connecting to ccz03.sfc.keio.ac.jp... t03000tf@ccz03.sfc.keio.ac.jp's password: sftp> _
sftpコマンドは次のような書式で利用します.
sftpで 転送したいファイルがあるディレクトリへ移動したり,ディレクトリ内のファイルを表示させたりするには lsコマンドや cdコマンド を使用します. lsコマンドは,リモートホストのカレントディレクトリに存在する ファイルの一覧を表示します. cdコマンドは リモートホストのディレクトリの移動に利用します.
次にlsコマンドと cdコマンドの例を示します.
sftp> ls <ENTER> -rw-rw-rw- 1 t03000tf student 254 Oct 20 01:55 .cshrc drwxr-xr-x 2 t03000tf student 4096 Feb 12 12:25 bin drwxr----- 9 t03000tf student 4096 Nov 14 04:12 Mail -rwxr-xr-x 1 t03000tf student 892 Feb 12 12:25 memo.tex drwxr-xr-x 2 t03000tf student 512 Aug 11 14:31 report sftp> cd report <ENTER> sftp> ls <ENTER> -rw-r--r-- 1 t03000tf student 227 Jan 23 2002 kadai.tex -rw-r--r-- 1 t03000tf student 401 Jun 9 01:27 kadai.dvi sftp> _
リモートホストでのディレクトリ操作と同様に,llsコマンドと lcdコマンドを 利用することにより,ローカルホストのディレクトリ操作を行えます. コマンドの頭文字の`l'はLocalの略です.
llsコマンドはsftpを実行中に,ローカルホストの作業ディレクトリ内の ファイルやディレクトリの一覧を表示します.
lcdコマンドはsftpを実行中に,ローカルホストの作業ディレクトリを変更します.
次にllsコマンドと lcdコマンドの実行例を示します.
sftp> lls <ENTER> advertisement.tex question.eps directory/ studentList.tex english/ sftp> lcd english/<ENTER> sftp> lls <ENTER> finalexam.tex words.tex sftp> _
リモートホストに置いてあるファイルを ローカルホストに転送するには,getコマンドや mgetコマンド を利用します.
getコマンドは リモートホストの1個のファイルを ローカルホストに転送するときに利用します.
次に,kadai.tex というファイルを転送する例を示します.
sftp> get kadai.tex <ENTER> Fetching /a/fs0501a/t03000tf/report/kadai.tex to kadai.tex sftp> _
転送が終了するとプロンプトが表示されます. リモートホストに指定した名前のファイルが存在しない場合,エラーメッセージが表示されるのでファイル名を確認してください.
mgetコマンドは,リモートホストから複数のファイルを一度に転送する際に利用します. メタキャラクタ()を 利用できるので,`*.tex'や `kadai?.tex'など のようにファイル名を指定することで 複数のファイルを同時に転送できます.
次に,リモートホストのカレントディレクトリのファイルを すべてローカルホストに転送する例を示します.
sftp> mget * <ENTER> Fetching /a/fs0501a/t03000tf/report/kadai.tex to kadai.tex Fetching /a/fs0501a/t03000tf/report/kadai.dvi to kadai.dvi sftp> _
ローカルホストにあるファイルを リモートホストに転送するには,putコマンドや mputコマンド を利用します.
putコマンドは ローカルホストの1個のファイルを リモートホストに転送するときに利用します. 次に,`draft.tex' というファイルをリモートホストに転送する 例を示します.
sftp> put draft.tex <ENTER> Uploading draft.tex to /a/fs0501a/t03000tf/report/draft.tex sftp> _
転送が終了するとプロンプトが表示されます. ローカルホストにファイルが存在しない場合,エラーメッセージが表示されるので ファイル名を確認してください.
mputコマンドは mgetコマンドと同様に メタキャラクタを利用できるので,`*.tex'や `kadai?.tex'など のようにファイル名を指定することで 複数のファイルを同時に転送できます.
次に,ローカルホストの作業ディレクトリにある `example' ではじまるファイルを すべてリモートホストに転送する実行例を示します.
sftp> mput example* <ENTER> Uploading example.tex to /a/fs0501a/t03000tf/report/example.tex Uploading example.dvi to /a/fs0501a/t03000tf/report/example.dvi sftp> _
sftpを終了する場合は quitコマンドを 実行してください.
sftp> quit <ENTER> % _