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