scpとrsync、ケツにスラッシュがあるかないか毎回確認するのでメモしておく。
個人的にはscp使わないで rsync option from/ dist/で
両方共ケツスラッシュ付けてやってる。
例
from/files_dirをdist/files_dirに持って行きたい
% tree .
.
├── dist
└── from
└── files_dir
└── file
3 directories, 1 file
%
まとめ
| PATH | scp | rsync |
|---|---|---|
| from/files_dir/ dist/ | NG | NG |
| from/files_dir dist/ | NG | OK |
| from/files_dir/ dist/files_dir/ | OK | OK |
| from/files_dir dist/files_dir | OK | NG |
| from/files_dir/ dist/files_dir | OK | OK |
| from/files_dir dist/files_dir/ | OK | NG |
結論
scpもrsyncも明示的に送り元と送り先ディレクトリを指定して
ケツスラを付けようという話。
scp
持っていくディレクトリにケツスラあり
NG
% scp -r from/files_dir/ dist/
%
% tree .
.
├── dist
│ └── file
└── from
└── files_dir
└── file
3 directories, 2 files
%
持っていくディレクトリにケツスラなし
NG
% scp -r from/files_dir dist/
%
% tree .
.
├── dist
│ └── file
└── from
└── files_dir
└── file
3 directories, 2 files
%
持っていくディレクトリを明記してケツスラあり
OK
% scp -r from/files_dir/ dist/files_dir/
%
% tree .
.
├── dist
│ └── files_dir
│ └── file
└── from
└── files_dir
└── file
4 directories, 2 files
%
持っていくディレクトリを明記してケツスラなし
OK
% scp -r from/files_dir dist/files_dir
%
% tree .
.
├── dist
│ └── files_dir
│ └── file
└── from
└── files_dir
└── file
4 directories, 2 files
%
持っていくディレクトリを明記してもっていくディレクトリだけケツスラあり
OK
% scp -r from/files_dir/ dist/files_dir
%
% tree .
.
├── dist
│ └── files_dir
│ └── file
└── from
└── files_dir
└── file
4 directories, 2 files
%
持っていくディレクトリを明記して送り先のディレクトリだけケツスラあり
OK
% scp -r from/files_dir dist/files_dir/
%
% tree .
.
├── dist
│ └── files_dir
│ └── file
└── from
└── files_dir
└── file
4 directories, 2 files
% [~/tmp/test]
rsync
持っていくディレクトリにケツスラあり
NG
% rsync -r from/files_dir/ dist/
%
% tree .
.
├── dist
│ └── file
└── from
└── files_dir
└── file
3 directories, 2 files
%
持っていくディレクトリにケツスラなし
OK
% rsync -r from/files_dir dist/
%
% tree .
.
├── dist
│ └── files_dir
│ └── file
└── from
└── files_dir
└── file
4 directories, 2 files
%
持っていくディレクトリを明記してケツスラあり
OK
% rsync -r from/files_dir/ dist/files_dir/
%
% tree .
.
├── dist
│ └── files_dir
│ └── file
└── from
└── files_dir
└── file
4 directories, 2 files
%
持っていくディレクトリを明記してケツスラなし
NG
% rsync -r from/files_dir dist/files_dir
%
% tree .
.
├── dist
│ └── files_dir
│ └── files_dir
│ └── file
└── from
└── files_dir
└── file
5 directories, 2 files
%
持っていくディレクトリを明記してもっていくディレクトリだけケツスラあり
OK
% rsync -r from/files_dir/ dist/files_dir
%
% tree .
.
├── dist
│ └── files_dir
│ └── file
└── from
└── files_dir
└── file
4 directories, 2 files
持っていくディレクトリを明記して送り先のディレクトリだけケツスラなし
NG
% rsync -r from/files_dir dist/files_dir/
%
% tree .
.
├── dist
│ └── files_dir
│ └── files_dir
│ └── file
└── from
└── files_dir
└── file
5 directories, 2 files
%