Linux基本コマンドTips一覧
本連載では、Linuxの基本的なコマンドについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、異なるホスト間でもファイルやディレクトリを同期できる「rsync」コマンドです。
「rsync」は、リモート環境とファイルやディレクトリを「同期(sync)する」というコマンドです。ローカル環境のみでも使用できます。「変更があった分だけ更新する」という機能があるので、ディレクトリ単位のバックアップで特に便利に使えます。
rsyncコマンドの主なオプションは次の通りです。
●通常のオプション
短いオプション |
長いオプション |
意味 |
-v |
--verbose |
動作内容を表示する |
-q |
--quiet |
動作中のメッセージを抑制する |
-n |
--dry-run |
試験モード。実際には動作せず、動作内容だけ表示する(「-v」や「--stats」を一緒に指定する) |
|
--stats |
ファイル数や転送サイズを表示する |
|
--list-only |
コピーする代わりにファイルのリストを作成する |
-a |
--archive |
アーカイブモード(「-rlptgoD -no-H -no-A -no-X」相当) |
|
--no-オプション |
指定したオプションを無効にする(「-H」を無効にする場合は「--no-H」のように指定する) |
-I |
--ignore-times |
サイズとタイムスタンプが同じファイルも処理する |
|
--size-only |
サイズが同じファイルは処理しない |
-c |
--checksum |
更新日とサイズではなく、チェックサムで変更の有無をチェックする |
|
--daemon |
デーモンとして動作(「--daemon --help」でデーモン時に使用できるオプションが確認できる) |
●「-a」で有効になるオプション
短いオプション |
長いオプション |
意味 |
-r |
--recursive |
ディレクトリを再帰的に処理する |
-l |
--links |
シンボリックリンクをシンボリックリンクのままコピーする |
-p |
--perms |
パーミッションを保持する |
-t |
--times |
タイムスタンプを保持する |
-g |
--group |
所有グループをそのまま保持する |
-o |
--owner |
所有者をそのまま保持する(自分以外の所有者を保持するにはroot権限が必要) |
-D |
|
デバイスファイルや特殊ファイルを保持する(「--devices --specials」相当) |
|
--devices |
デバイスファイルを保持する(root権限が必要) |
|
--specials |
特殊ファイルを保持する |
●「-a」で無効になるオプション
短いオプション |
長いオプション |
意味 |
-H |
--hard-links |
ハードリンクを保持する |
-A |
--acls |
ACL(アクセス制御リスト)を保持する(「-p」も同時に指定した扱いになる) |
-X |
--xattrs |
拡張属性を保持する |
●その他の主な同期オプション
短いオプション |
長いオプション |
意味 |
-R |
--relative |
相対パス名を使用する |
-d |
--dirs |
ディレクトリを再帰しない |
-u |
--update |
同期先のファイルの方が新しい場合はスキップする |
|
--inplace |
ファイルを上書きする |
|
--append |
短いファイルに追加する |
-b |
--backup |
バップアップファイルを作成する(ディレクトリや拡張子を指定しなかった場合は「~」を使用) |
|
--backup-dir=ディレクトリ |
バックアップファイルを配置するディレクトリを指定 |
|
--suffix=拡張子 |
バックアップファイルの拡張子(デフォルトは「~」) |
|
--existing |
同期先に新規ファイルを作成しない |
|
--ignore-existing |
同期先にファイルがあったらスキップする |
|
--remove-source-files |
同期後にファイルを削除する |
|
--delete |
同期元にないファイルを同期先から削除する |
|
--delete-before |
同期先にないファイルを同期前に削除する |
|
--delete-during,--del |
同期先にないファイルを同期中に削除する |
|
--delete-delay |
同期中に削除すべきファイルを見つけて、後で削除する |
|
--delete-after |
同期先にないファイルを同期終了後に削除する |
|
--delete-excluded |
同期から除外したファイルも削除する |
|
--ignore-errors |
I/Oエラーがあっても削除する |
|
--force |
ディレクトリが空ではない場合も削除する |
|
--max-delete=ファイル数 |
指定した数以上のファイルは削除しない |
|
--max-size=サイズ |
指定したサイズより大きなファイルは削除しない |
|
--min-size=サイズ |
指定したサイズより小さなファイルは削除しない |
|
--exclude=パターン |
指定したパターンにマッチしたファイルは処理しない |
|
--exclude-from=ファイル |
除外パターンを指定したファイルから読み込む |
|
--include=パターン |
指定したパターンにマッチしたファイルを処理する |
|
--include-from=ファイル |
対象パターンを指定したファイルから読み込む |
|
--files-from=ファイル |
同期元ファイルのリストを指定したファイルから読み込む |
-0 |
--from0 |
対象リストなどのファイルを改行ではなくヌル文字(\0)で区切る |
●シンボリックリンク関係のオプション
短いオプション |
長いオプション |
意味 |
-L |
--copy-links |
シンボリックリンクを対象にする |
|
--safe-links |
リンク先が自分の配下にあるものだけを対象にする |
|
--copy-unsafe-links |
リンク先が自分の配下にないものだけを対象にする |
-k |
--copy-dirlinks |
ディレクトリへのリンクの場合もリンク先を転送する |
-K |
--keep-dirlinks |
ディレクトリへのリンクをたどらない |
-l |
--links |
シンボリックリンクをシンボリックリンクのままコピーする |
●パーミッション関係のオプション
短いオプション |
長いオプション |
意味 |
-p |
--perms |
パーミッションを保持する |
-E |
--executability |
実行可能属性を保持する |
|
--chmod=CHMOD |
パーミッションを指定する |
-t |
--times |
タイムスタンプを保持する |
-O |
--omit-dir-times |
「--times」オプション指定時、ディレクトリは除外する |
-g |
--group |
所有グループをそのまま保持する |
-o |
--owner |
所有者をそのまま保持する(自分以外の所有者を保持するにはroot権限が必要) |
|
--numeric-ids |
ユーザーIDとグループIDを保持する(転送先の名前に対応させない) |
●ネットワーク転送関係のオプション(※ローカル転送時も使用可能)
短いオプション |
長いオプション |
意味 |
-T |
--temp-dir=ディレクトリ |
指定したディレクトリに一時ディレクトリを作成する |
-z |
--compress |
転送中のデータを圧縮する |
|
--compress-level=レベル |
データの圧縮レベルを指定する |
|
--skip-compress=リストファイル |
リストファイルに書かれたファイルは圧縮しない |
|
--port=ポート番号 |
ポート番号を指定する |
|
--sockopts=OPTIONS |
TCPオプションを指定する |
-8 |
--8-bit-output |
8ビット以上の文字をエスケープしない |
-h |
--human-readable |
数字を読みやすい単位で表示する |
|
--progress |
転送の進行状況を表示する |
-P |
|
(「--partial --progress」相当) |
|
--partial |
転送を中断したファイルを保持する |
|
--partial-dir=ディレクトリ |
転送を中断したファイルを保存するディレクトリ |
-4 |
--ipv4 |
IPv4を使用する |
-6 |
--ipv6 |
IPv6を使用する |
|
--timeout=秒数 |
I/Oタイムアウトの秒数 |
|
--iconv=変換方法 |
ファイル名の変換方法を指定する(転送元がmacOSの場合は「--iconv=UTF-8-MAC,UTF-8」のように指定) |
Copyright © ITmedia, Inc. All Rights Reserved.