WebDesigner's Memorandumウェブデザイナーの備忘録

scpコマンドでターミナル接続先のリモートファイルをローカルにダウンロードする方法

scpコマンドでターミナル接続先のリモートファイルをローカルにダウンロードする方法

sshコマンドを使ってSSHログインをして、その先のファイルをローカルにダウンロードしたいことがあり、方法を調べました。

FTPソフトが使えると視覚的にも非常に分かりやすいのですが、どうしてもそれはできない事情もあり、仕方なくターミナルで行いました。

scpコマンド

scpは「Secure Copy」の略でリモートマシンとローカルマシン間でファイルやフォルダをコピーしたり、リモートマシン同士でファイル・フォルダをコピーできます。

通信にはsshコマンドと同じ認証を使用するので、SSH接続をできるようにしておく必要があります。

$ scp [オプション] [コピー元のパス] [保存先のパス]

リモートパスの指定には下記の形式を使います。
これはsshコマンドを使うときと一緒です。

[ユーザー名]@[サーバーのホスト名かIPアドレス]:[パス]

オプション

オプションは下記の通りでフォルダごとダウンロードしたい場合は「-r」オプションを付けます。

オプション内容
-i [鍵ファイルのあるパス]SSH接続時に使用する鍵ファイルのあるパスを指定する
-rディレクトリごとコピーする
-P [ポート番号]SSHのポートを変更している場合などに接続に使用するポートを指定する
-pコピー元のタイムスタンプやパーミッションを保持する

ローカルのカレントディレクトリにコピーしたい場合は省略も可能

リモートのファイルをローカルのカレントディレクトリにコピーしたい場合は、ローカルのパス入力は省略可能です。

$ scp [オプション] [コピー元のパス] 

これでカレントディレクトリにコピーされます。

ローカルからリモートへのアップロードも可能

ローカルのパスを先に入力して、後ろにリモートのパスを入力すればアップロードも可能です。

パスの入力の前後を間違えると反対の作業をしてしまうので注意が必要です。

著者について

プロフィール画像

サイトウ マサカズ@31mskz10

1997年生まれ。2016年から専門学校でデザインについて勉強。卒業後は神戸の制作会社「N'sCreates」にウェブデザイナーとして入社。このブログでは自分の備忘録も兼ねて、ウェブに関する記事や制作環境を効率的に行うための記事を書いています。

Twitterをフォロー Facebookでいいね