よく使う rsync コマンドのオプション -av について

皆さんが利用される際に同じオプションを指定するかはわからないですが、 自分がいつも rsync するときには以下のコマンドを指定しています。

rsync -av <送り元> <送り先>

この rsync についている -v は verbose のことだからわかるとして、-a というのは何でしょう? マニュアルによると以下のようです。

-a は archive モードであり、 -rlptgoD に等しい。
ただし -A-H は除く。

それではこれらのオプションを詳しく見てみます。 因みに、結論から言うと できるだけそのままコピーする という感じです。

-a で指定されるオプション

-a で設定されるのは以下のオプション。

オプション 説明
-r, --recursive ディレクトリを再帰的に処理する
-l, --links symlinksをそのままsymlinkとして処理する
-p, --perms パーミッションを保持する
-t, --times 変更日時を保持する
-g, --group group情報を保持する
-o, --owner owner情報を保持する(super-user only)
-D --devices --specials を指定するのと同じ効果。 詳しくは以下参照
--devices deviceファイルを保持する(super-user only)
--specials specialファイルを保持する

一応 スペシャルファイル について注意書きしておくと、通常Linuxでは /dev/ 配下に格納されている ディスク用のファイルやコンソール(tty)のファイルを指します。 外部のデバイスとファイルシステムを介してやり取りをするファイルたちですね。

スペシャルファイルとデバイスファイルの違いを調べたのですが、 いまいち違いが判りませんでした。 rsync のソースを見れば判然とするかもしれないですが。

そもそも、デバイスファイルやスペシャルファイルを rsync でコピーする用途が 余りピンとこないですが...。

-a で除外されるオプション

因みにわざわざ除外されているよ、と但し書きのされている -A-H は 以下の通り。

オプション 説明
-A, --acls ACLを保持する (-pも指定した扱いになる)
-H, --hard-links ハードリンクを保持する

上で -l によってsymlinkをコピーされているようでしたが、 ハードリンクはコピーしないよという感じですね。

一応 ACL について述べておくと、通常のLinuxのパーミッションより詳細な パーミッション設定を行いたい場合に利用される機能です。

圧縮も可能

今回改めて調べると、転送時に圧縮するオプションもあるようでした。 -z を指定することにより、転送時に圧縮したデータを転送してくれるようです。

あまり帯域を利用したくないときになどに使えますね。

コメント

このブログの人気の投稿

gnuplot: グラフの色を変更する

gnuplotで縦線を引きたい

[Linux] rsyncで進捗を確認する