rsyncはディレクトリの同期をローカルマシン内もしくはリモートマシン間で行うためのコマンドです。なお、名前のよく似た、メモリ内のキャッシュをディスクに強制的に書き出させるsyncコマンドとは関係ありません。
チートシート
ディレクトリ内のファイルのコピー
$ rsync -av sourcedir/ destdir/
(or $ rsync --archive --verbose sourcedir/ destdir/)
ディレクトリ全体のコピー
スラッシュがない ('sourcedir/' ではなく 'sourcedir') 場合はディレクトリそのものがコピーされます。
$ rsync -av sourcedir destdir/
コピーではなく同期
コピー元にないファイルがコピー先にあれば削除されます。完全同期です。
$ rsync -av --delete sourcedir/ destdir/
特定のファイルをコピーまたは同期対象から除外
ログファイルなどを除外して同期したい場合には '--exclude' オプションを利用します。
$ rsync -av --exclude 'log.bk' sourcedir/ destdir/
SSHでリモートマシンのディレクトリにコピー
$ rsync -av sourcedir/ username@example.com:/path/to/destdir/
空ディレクトリを無視 -m しつつ、特定のファイルのみをコピー
rsync -avm --include='*/' --include '*.txt' --include '*.tar.gz' --exclude '*' vagrant:/data/db .
ポート番号の変更
-e 'ssh -p 12345'
複数ファイルを指定
クォーテーションで囲うことで複数ファイルを指定できます。
rsync -av "username@example.com: /tmp/file1.txt /tmp/file2.txt" .
大きなファイルを転送する場合
途中で通信が切れた場合に再開できます。-n で dry-run できます。
rsync -avPzh /tmp/myhugefile.tar.gz remote:/data/
-P再開可能なように--partialしつつプログレスを表示--progress-z圧縮-h人間に見やすい形式で表示
0
SPA構築が得意
記事の執筆者にステッカーを贈る
有益な情報に対するお礼として、またはコメント欄における質問への返答に対するお礼として、 記事の読者は、執筆者に有料のステッカーを贈ることができます。
さらに詳しく →Feedbacks
ログインするとコメントを投稿できます。





