scpコマンドを使ってローカルファイルをリモートに転送する


scpコマンドを使ってローカルファイルをリモートに転送する、またはその逆にリモートにあるファイルをローカルに落とす方法を書きます。

なぜscpコマンドを使わなければいけないか?

scpコマンドを使わなくてもGUIでドラッグ&ドロップして、ファイルを転送することはできます。
しかし、.gitなどの隠しファイルはscpファイルを使ってでしか転送することはできません。
(隠しファイルが入ったディレクトリごとドラッグ&ドロップしても移動してくれない。)

例えばcakePHPとかをダウンロードした後に、ドラック&ドロップで丸ごとサーバーにあげても、.htaccessなどのファイルが移動してくれないので、サーバー上でうまく動きません。

ローカル→リモート

scp -P <ポート番号> <ローカルのパス> <ユーザ名@リモートのホスト名>:<リモートのパス>

ファイルを移動させる時は以上のコマンドでも大丈夫ですが、ディレクトリごと移動させたい時は、ポート番号の後に、オプション-rをつけてください。
<ユーザ名@リモートのホスト名>のところがわかりにくいと思いますが、リモートにssh接続ができているなら、ssh XXXX@YYYYの部分をコピペすれば大丈夫だと思います。ポート番号もssh接続する時のものを使えば通るかと・・

リモート→ローカル

scp -P <ポート番号> <ユーザ名@リモートのホスト名>:<リモートのパス> <ローカルのパス>

これは単純にローカルとリモートの順番を逆にするだけです。

注意

ローカル→リモート、リモート→ローカルどちらの場合もコマンド入力はローカルでするようにしましょう。