同期コマンド rsync はやっぱり便利

投稿者: | 2018年9月21日

rsync コマンドはファイル同期を行えるコマンドです。
–delete 引数を使うことで、同期元から削除されたファイルを同期先から連動して削除することができます。

ちなみに、cp コマンドでも -u 引数を使うことで差分コピーが可能です。

rsync コマンド

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 コマンド

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 : 可能な限り全ての属性を指定可能