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)