rsync -avが基本
rsyncを使う上で頻出なのは-aオプションだ。これはアーカイブモードと言われるもので、パーミッションやタイムスタンプを保持してコピー元の完全なコピーを作成するオプションである。併せて-vオプションを指定してやるとコピー中のファイル名が表示され便利である。よって、rsyncの最も基本的な使い方は以下のようになる。
$ rsync -av SRC DEST
SRCはコピー元のパス、DSTはコピー先のパスである。SRCについては、末尾に/をつけるかどうかで、SRCのディレクトリ自体をコピー対象にするか切り替わることに注意しよう。/をつけるとコピー元のディレクトリ以下が、つけないとコピー元のディレクトリを含めてコピーされる。
SRCまたはDSTは、SSHでアクセスできるリモートのディレクトリであっても構わない。その場合はuser@host:dirのようにパスを指定する。
同期するなら–delete
コピー元で削除されたファイルを、コピー先で削除して、2つのディレクトリの内容を完全に同期させたい場合がある。その場合は--deleteオプションを使う。--deleteにはいくつかバリエーションがあるが、基本的には--deleteだけ覚えておけば最低限の用は足りる。
$ rsync -av --delete SRC DEST
-nでDRY RUNが可能
rsyncコマンドを実行して、実際に何が起こるのか自信がない場合は、-nオプションでDRY RUNが可能だ。DRY RUNでは実際の操作は行われず、何が起こるのかが表示される。srcとdstという2つのローカルのディレクトリを同期する以下の例では、コピー元からhogeとpiyoがコピーされ、コピー先のfugaが削除されることがわかる。
$ rsync -avn --delete src/ dst
sending incremental file list
./
deleting fuga
hoge
piyo
sent 84 bytes received 21 bytes 210.00 bytes/sec
total size is 10 speedup is 0.10 (DRY RUN)
