2003 CNS GUIDE
copyright
 

6.2 sftpコマンドを使ったファイルの転送

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 [オプション] [ログイン名]@[ホスト名]

6.2.1 sftpでのディレクトリ操作

6.2.1.1 リモートホストの操作

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> _

6.2.1.2 ローカルホストの操作

リモートホストでのディレクトリ操作と同様に,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> _

6.2.2 リモートホストからローカルホストへのファイルの転送

リモートホストに置いてあるファイルを ローカルホストに転送するには,getコマンドや mgetコマンド を利用します.

6.2.2.1 単独のファイル転送

getコマンドは リモートホストの1個のファイルを ローカルホストに転送するときに利用します.

次に,kadai.tex というファイルを転送する例を示します.

sftp> get kadai.tex <ENTER>
Fetching /a/fs0501a/t03000tf/report/kadai.tex to kadai.tex
sftp> _

転送が終了するとプロンプトが表示されます. リモートホストに指定した名前のファイルが存在しない場合,エラーメッセージが表示されるのでファイル名を確認してください.

6.2.2.2 複数のファイル転送

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> _

getコマンドや mgetコマンド は,ローカルホストの作業ディレクトリに 転送しようとしているファイルと同じ名前のファイルがある場合,それを警告なしに上書きします. あらかじめ,ローカルホストの作業ディレクトリには 転送するファイルと同じ名前のファイルがないことを 確認してください.

6.2.3 ローカルホストからリモートホストへのファイル転送

ローカルホストにあるファイルを リモートホストに転送するには,putコマンドや mputコマンド を利用します.

6.2.3.1 単独のファイル転送

putコマンドは ローカルホストの1個のファイルを リモートホストに転送するときに利用します. 次に,`draft.tex' というファイルをリモートホストに転送する 例を示します.

sftp> put draft.tex <ENTER>
Uploading draft.tex to /a/fs0501a/t03000tf/report/draft.tex
sftp> _

転送が終了するとプロンプトが表示されます. ローカルホストにファイルが存在しない場合,エラーメッセージが表示されるので ファイル名を確認してください.

6.2.3.2 複数のファイル転送

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> _

putコマンドや mputコマンド は,リモートホストのカレントディレクトリに 転送しようとしているファイルと 同じ名前のファイルがある場合,警告なしに上書きします. あらかじめリモートホストのカレントディレクトリに 同じ名前のファイルがないことを確認してください.

6.2.4 sftpコマンドの終了

sftpを終了する場合は quitコマンドを 実行してください.

sftp> quit <ENTER>
% _