📁
rsync で末尾の / とコピー先の有無による挙動まとめ
rsync のファイル・ディレクトリ指定の / の有無、コピー先にファイル・ディレクトリがある場合の挙動について調べた。macOS Catalina の rsync 2.6.9 で確認。
結構パターンがあるがポイントをまとめると...
- コピー元の末尾に / があれば "ディレクトリの中身すべて" の意味になる (ファイルならエラー)
- コピー先の末尾に / があれば、ディレクトリであることを強制できる
- コピー先の有無による変化は、複数回実行しても同じ結果になるようになってる
という感じ。
コピー元 | コピー元の末尾 / | コピー先 | コピー先の末尾 / | 例 | 結果 |
---|---|---|---|---|---|
ディレクトリ | あり | ファイル | あり | rsync -av src/ dest.txt/ |
エラー (ERROR: cannot stat des... |
ディレクトリ | あり | ファイル | なし | rsync -av src/ dest.txt |
エラー (ERROR: destination mus... |
ディレクトリ | あり | ディレクトリ | あり | rsync -av src/ dest/ |
コピー元ディレクトリの中身がコピー先ディレクトリの中にコピー |
ディレクトリ | あり | ディレクトリ | なし | rsync -av src/ dest |
コピー元ディレクトリの中身がコピー先ディレクトリの中にコピー |
ディレクトリ | あり | なし | あり | rsync -av src/ new/ |
コピー先にディレクトリが作られ、コピー元ディレクトリの... |
ディレクトリ | あり | なし | なし | rsync -av src/ new |
コピー先にディレクトリが作られ、コピー元ディレクトリの... |
ディレクトリ | なし | ファイル | あり | rsync -av src dest.txt/ |
エラー (ERROR: cannot stat des... |
ディレクトリ | なし | ファイル | なし | rsync -av src dest.txt |
エラー (ERROR: destination mus... |
ディレクトリ | なし | ディレクトリ | あり | rsync -av src dest/ |
コピー元と同名のディレクトリがコピー先に作られその中にコピー |
ディレクトリ | なし | ディレクトリ | なし | rsync -av src dest |
コピー元と同名のディレクトリがコピー先に作られその中にコピー |
ディレクトリ | なし | なし | あり | rsync -av src new/ |
コピー先にディレクトリが作られ、その中にコピー元と同名... |
ディレクトリ | なし | なし | なし | rsync -av src new |
コピー先にディレクトリが作られ、その中にコピー元と同名... |
ファイル | あり | ファイル | あり | rsync -av src.txt/ dest.txt/ |
エラー (Not a directory (20)) |
ファイル | あり | ファイル | なし | rsync -av src.txt/ dest.txt |
エラー (Not a directory (20)) |
ファイル | あり | ディレクトリ | あり | rsync -av src.txt/ dest/ |
エラー (Not a directory (20)) |
ファイル | あり | ディレクトリ | なし | rsync -av src.txt/ dest |
エラー (Not a directory (20)) |
ファイル | あり | なし | あり | rsync -av src.txt/ new/ |
コピー先にディレクトリが作られるが、エラー (Not ... |
ファイル | あり | なし | なし | rsync -av src.txt/ new |
エラー (Not a directory (20)) |
ファイル | なし | ファイル | あり | rsync -av src.txt dest.txt/ |
エラー (ERROR: cannot stat des... |
ファイル | なし | ファイル | なし | rsync -av src.txt dest.txt |
コピー元のファイルで置き換えられる |
ファイル | なし | ディレクトリ | あり | rsync -av src.txt dest/ |
コピー元のファイルがコピー先ディレクトリの中にコピー |
ファイル | なし | ディレクトリ | なし | rsync -av src.txt dest |
コピー元のファイルがコピー先ディレクトリの中にコピー |
ファイル | なし | なし | あり | rsync -av src.txt new/ |
コピー元のファイルがコピー先ディレクトリの中にコピー |
ファイル | なし | なし | なし | rsync -av src.txt new |
コピー先にコピー元と同じ内容のファイルが作られる |
Discussion