【初心者向け】簡単なsftpコマンドの使い方まとめ

Linux
スポンサーリンク

はじめに

SFTPサーバに接続してファイルのアップロードやダウンロードを行う際に、これさえ知っていれば迷わずsftpコマンドが使えるようになる情報をまとめました。

本記事はLinuxのクライアントからSFTPサーバに接続するという状況を想定しています。

SFTPサーバに接続する

基本構文

$ sftp SFTPサーバのアカウント@SFTPサーバのIPまたはホスト名 

鍵認証で接続する(-iオプション)

-i 秘密鍵ファイル

デフォルトポート以外で接続する(-Pオプション)

-P ポート番号

実践例

以下の場合にSFTPサーバに接続すると想定した場合

SFTPサーバのIPアドレス192.168.1.1
SFTPサーバのユーザhoge
秘密鍵ファイル/tmp/key
SFTPサーバのポート番号2222
$ sftp -i /tmp/key -P 2222 hoge@192.168.1.1

必ず覚えるべきSFTPサーバで使えるコマンド

ここからはSFTPサーバに接続後に使えるsftpのコマンドを紹介します。どれも頻繁に使うものですので、必ず覚えておくべきです!!

sftpのコマンドは接続元クライアントと接続先SFTPサーバ両方の操作が可能です。

したがって、そのコマンドがどちらを操作するものかはしっかりわかっていないと思わぬ事故に繋がるので注意してください。

cd:接続先SFTPサーバのカレントディレクトリを変更する

sftp> cd 接続先SFTPサーバのディレクトリ

Linuxのコマンドと同じcdでカレントディレクトリを変更できます。しかし、ここで変わっているのはSFTPサーバのディレクトリです。

lcd:接続元クライアントのカレントディレクトリを変更する

sftp> lcd 接続元クライアントのディレクトリ

cdの前につく「l 」はローカル(local)の意味で、接続元クライアントを意味します。lcdで接続元クライアントのカレントディレクトリを変更できます。

pwd:接続先SFTPサーバのカレントディレクトリを表示する

sftp> pwd
接続先SFTPサーバのカレントディレクトリを表示

これもLinuxのコマンドと同じpwdです。これも、ここで表示しているのはSFTPサーバのカレントディレクトリであることに注意してください。

lpwd:接続元クライアントのカレントディレクトリを表示する

sftp> lpwd
接続元クライアントのカレントディレクトリを表示

これも「l 」がついているので接続元クライアントを意味します。普段のLinuxで使うpwdと同じです。混乱しないでくださいね。

ls:接続先SFTPサーバのカレントディレクトリにあるファイルを表示する

sftp> ls
接続先SFTPサーバのカレントディレクトリにあるファイルを表示

これもLinuxのコマンドと同じlsですが、SFTPサーバのカレントディレクトリにあるファイルを表示します。

Linuxのコマンドと同様に、lsの後ろにファイル名を指定したり、その際に*(アスタリスク)等のワイルドカードを使用することもできます。

get:接続先SFTPサーバからファイルをダウンロードする

このためにSFTPサーバに接続しているわけですので、最重要です。

接続先SFTPサーバのファイルを接続元クライアントのカレントディレクトリにコピーします。*(アスタリスク)等のワイルドカード(メタキャラクタ)を使用して複数ファイルをダウンロードすることも可能です。

接続先SFTPサーバのカレントディレクトリにあるファイルすべてを接続元クライアントのカレントディレクトリにコピーする場合は以下のコマンドです。

ftp> get *

getコマンドでのダウンロード先(接続元クライアント)に同名ファイルがある場合は確認なしで上書きされます。これで事故ると悲惨です。絶対に注意です。

put:接続元クライアントのファイルをSFTPサーバにアップロードする

getの逆です。これもSFTPサーバに接続している目的なので、最重要です。

接続元クライアントのファイルをSFTPサーバのカレントディレクトリにコピーします。*(アスタリスク)等のワイルドカード(メタキャラクタ)を使用して複数ファイルをアップロードすることも可能です。

接続元クライアントのカレントディレクトリにあるファイルすべてを接続先SFTPサーバのカレントディレクトリにコピーする場合は以下のコマンドです。

ftp> put *

getと同じく、アップロード先(接続先SFTPサーバ)に同名ファイルがある場合は確認なしで上書きされます。胃がキュンッってしますね。注意してください。

exit:接続先SFTPサーバからログアウト(切断)する

sftp> exit

作業が終わったらexitでログアウトしましょう。

おわりに

sftpってそんなに頻繁に使わない印象があります(職種に依る?)。だからこそ、ファイル上書きなどが発生する可能性があって結構怖いということは覚えておいたほうがいいです。

コメント

タイトルとURLをコピーしました