1. トップ
  2. 新着ニュース
  3. IT
  4. パソコン

窓辺の小石 第195回 オデッサ・ファイル

マイナビニュース / 2024年12月20日 14時37分

画像提供:マイナビニュース

もし、sshで接続できるマシンがあるなら、sftpで接続して、ファイルの交換が行える。sftpでは、リモート側のファイルの一覧やディレクトリの変更、作成といった基本的なファイル操作が可能である。従来、sshといえば、scpコマンドが著名だったが、現在では、sftpが主流で、scpもsftpをベースに実装されている。何よりも簡易ながらファイル関連のコマンド(cd、ls、mkdirなど)が使えるsftpでは、作業効率が大きく異なる。そもそも、ダウンロードするリモート側のファイル名を把握している必要がなく、sftpのコマンドを使い、ファイルを探してダウンロードすることができる。

ftpといっても、sftpが実装するのは最近のLinux上で動作しているftpではなく、昔のftpコマンドに近い。筆者の記憶では、4.2あるいは4.3 BSDの頃に使われていたftpと同等である。

sftpは、起動した後、sftpのコマンドを使って「対話的」に操作する。マクロ(スクリプト)を作って、一連のファイル転送作業を自動化することもできる。

まずは、起動方法だが、(表01)に起動オプションを示す。sftpは、

sftp␣[オプション]␣<ユーザー名>@<ホスト名またはIPアドレス>[:<ポート番号>]

という構造で、ほとんどsshと同じ。オプションの一部は、sshクライアントと同じである。なので、sshクライアントを使い慣れていれば、問題はないだろう。

sftpコマンドを起動したら、(表02)にあるコマンドが利用できる。基本的には、ローカルで実行されるファイル関連コマンドは、コマンドの前にローカルを意味する小文字のLがつく。逆にリモート側で実行されるコマンドは、bashなどの組み込みコマンドそのままである。つまり、sftpを起動したら、リモート側で簡易シェルが動いていると思えばよい。

コマンドは、大きく、「汎用」(sftp自体の設定など)、「転送」(ファイルのアップロード、ダウンロードの指示)、「リモート」(リモート側で動作するファイル関連コマンド)、「ローカル」(ローカルで動作するファイル関連コマンド)の4つに分類できる。

「リモート」コマンドに比べると、「ローカル」コマンドの数が少ないが、シェルに抜ける「シェル・エスケープ」コマンドがあり、普通にbashなどのシェルで作業が行える。ファイルを転送するまえに、ちょっとエディタで編集といった作業もできる。これに対して、リモート側は、どのようなプラットフォームになるのかを決められないため、シェル・エスケープ機能がない(そもそもシェルが存在しない可能性さえある)。なので、一通りのファイル関連コマンドが用意されている。

この記事に関連するニュース

トピックスRSS

ランキング

複数ページをまたぐ記事です

記事の最終ページでミッション達成してください