rsync コマンドはファイル同期を行えるコマンドです。
--delete 引数を使うことで、同期元から削除されたファイルを同期先から連動して削除することができます。
ちなみに、cp コマンドでも -u 引数を使うことで差分コピーが可能です。
目次
rsync コマンド
$ sudo rsync -av --delete {SRC}/Dir {DEST}/Dir
引数 | 概要 |
---|---|
-v, --verbose | 処理されているファイルの一覧を表示 |
-a, --archive | アーカイブモード *1 |
--delete | 同期元(SRC)にないファイルを同期先(DEST)から削除する |
- *1 archive mode; equals -rlptgoD (no -H,-A,-X)
引数 概要 -r, --recursive 再帰的に処理 -l, --links シンボリックリンクをそのままコピー -p, --perms パーミッションを保持 -t, --times タイムスタンプを保持 -g, --group 所有グループを保持 -o, --owner 所有者を保持 (root限定) -D デバイスファイル・特殊ファイルを保持 No -H ハードリンクを保持しない No -A ACLを保持しない No -X 拡張属性を保持しない
cp コマンド
$ sudo cp -afpRuv {SRC}/Dir {DEST}/Dir
引数 | 概要 |
---|---|
-a, --archive | -d : コピー(SRC)のシンボリックリンクをたどらない -R : 再帰的に処理 --preserve=all*2 : 指定した属性を全て保持 |
-f, --force | 同名ファイルがある場合、強制上書き |
-p | mode(パーミッション)、ownership(所有者)、timestamps(タイムスタンプ)*3 を保持 |
-R, -r, --recursive | 再帰的に処理 |
-u, --update | コピー元(SRC)ファイルがコピー先(DEST)ファイルより新しいか存在しない時だけコピーする |
-v, --verbose | 処理されているファイルの一覧を表示。 |
- *2 preserve=all
all : 可能な限り全ての属性 - *3 各権限
mode : パーミッション
ownership : 所有者
timestamps : タイムスタンプが保持される。その他
context : コンテキスト情報
links : ディレクトリ内のハードリンク
xattr : ファイルシステムの拡張属性
all : 可能な限り全ての属性を指定可能