-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathscp.re
73 lines (51 loc) · 2.89 KB
/
scp.re
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#@#
//footnote[ssh-protocol][SSH (Secure SHell) protocol]
=={scp} @<term>{scp}
SSHプロトコル@<fn>{ssh-protocol}を利用して、自分のコンピュータのファイルを他のコンピュータに転送するコマンド。
scpは「Secure Copy」の略。
=== 書式
//list[][][fontsize=xx-small]{
$ scp [options] SOURCE... TARGET
//}
* 基本的に@<code>{cp}コマンドのSSH版。
「@<code>{scp コピー元ファイル コピー先ファイル}」のように使う。
コピー元/コピー先ファイルはネットワークの向こう側でも良いところが@<code>{cp}コマンドと異なる。
@<secref>{cp}節も参照
* @<code>{cp}コマンドと同じく、TARGET部分はディレクトリでも良い
* @<code>{cp}コマンドと同じく、
TARGETがディレクトリの場合、「SOURCE...」の部分は複数のファイルでも良い
=== 実行例
==== 実行例
sample.txtファイルを、exampleという名のサーバ上の/home/testディレクトリへコピーしたい
//list[][][fontsize=xx-small]{
$ scp sample.txt testuser@example:/home/test/
//}
* 「sample.txt」がコピー元のファイル名
* 「testuser@example:/home/test/」がコピー先のファイルパス
** testuserがコピー先のユーザ名@<br>{}(exampleサーバにログインする際のユーザ名)
** exampleがドメイン名(サーバ名)
** ホスト名(この例ではexample)の部分はIPアドレスでもよい
=== 知っていると便利なオプション: @<term>{-r}
コピーしたい対象がディレクトリの場合に使用する。
指定したディレクトリ以下すべてをコピーする
(再帰的(recursive)のr)。
//note[-r][-r 再帰的(recursive)オプション]{
@<idx>{-r}オプションは「@<term>{再帰((さいき))}」を意味するコマンドが多いので覚えておくと良い。
もっとも@<idx>{chmod}のように再帰に@<idx>{-r}ではなく@<idx>{-R}を使うものもあるのだが...
@<br>{}
そのうち体が覚えるので、いくつかの例外以外は@<idx>{-r}は再帰と覚えておいて間違いない。
ようするに定番オプションの付け方には規則性があるという話である。
//}
==== 実行例
sampledirディレクトリ以下すべてを、サーバexampleの/home/testディレクトリへコピーする
//list[][][fontsize=xx-small]{
$ scp -r sampledir testuser@example:/home/test/
//}
//note[scp][scp SOURCE... TARGET/]{
TARGETがディレクトリの場合、
コピー先がディレクトリであることを強調するために
右端に@<B>{@<code>{/}}を付けることが多い。
つまり右端の@<code>{/}は付けても付けなくても良いが、
(a) ドキュメントを読む人にコマンドの意図を伝えようとする心がけは大事
(b) (たまに、うっかりエラーを回避できることもある <- 生きる知恵)
//}