scpでディレクトリをコピーするときに、転送元のパスに'/'をつけるかどうかとリモートから転送する場合かどうかで挙動が変わる。
元の状態
$ tree
.
├── d1
│ └── f1
└── d2
'/'をつけずにローカルコピー
$ scp -r d1 d2
$ tree .
.
├── d1
│ └── f1
└── d2
└── d1
└── f1
d1がd2の下にコピーされる
'/'をつけてローカルコピー
$ scp -r d1/ d2
$ tree .
.
├── d1
│ └── f1
└── d2
└── f1
d1の「中身」がd2の下にコピーされる
'/'をつけずにリモートから転送
$ scp -r localhost:~/test/d1 d2
f1 100% 0 0.0KB/s 00:00
$ tree .
.
├── d1
│ └── f1
└── d2
└── d1
└── f1
d1がd2の下にコピーされる
'/'をつけてリモートから転送
$ scp -r localhost:~/test/d1/ d2
f1 100% 0 0.0KB/s 00:00
$ tree .
.
├── d1
│ └── f1
└── d2
└── d1
└── f1
末尾に'/'があるのにd1がd2配下にコピーされる!
ちなみにrsyncだとこのような挙動にはならず、末尾に'/'があればディレクトリの中身がコピーされる。