RSYNC Cheatsheet

Ezra Cheatsheet UNIX/Linux macOS

<table class="tableblock frame-all grid-all stretch"> <colgroup> <col style="width: 40%;"> <col style="width: 30%;"> <col style="width: 30%;"> </colgroup> <thead> <tr> <th class="tableblock halign-left valign-top">Commands</th> <th class="tableblock halign-left valign-top" colspan="2">Description</th> </tr> </thead> <tbody> <tr> <td class="tableblock halign-left valign-top"><div class="content"><div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-sh" data-lang="sh">rsync /path/to/file.ext /path/to/dest</code></pre> </div> </div></div></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>简单的复制文件 <code>file.ext</code> 到 <code>/path/to/dest</code> 目录中</p> </div></div></td> <td class="tableblock halign-left valign-top"><div class="content"></div></td> </tr> <tr> <td class="tableblock halign-left valign-top"><div class="content"><div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-sh" data-lang="sh">rsync -n /path/to/file.ext /path/to/dest</code></pre> </div> </div></div></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>演习模式:简单的复制文件 <code>file.ext</code> 到 <code>/path/to/dest</code> 目录中</p> </div></div></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="ulist"> <ul> <li> <p><code>-n</code>: 演习、排练,并不会进行真实的操作</p> </li> </ul> </div></div></td> </tr> <tr> <td class="tableblock halign-left valign-top"><div class="content"><div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-sh" data-lang="sh">rsync --size-only /path/to/file.ext /path/to/dest</code></pre> </div> </div></div></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>简单的复制文件 <code>file.ext</code> 到 <code>/path/to/dest</code> 目录中,仅比较文件大小</p> </div></div></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="ulist"> <ul> <li> <p><code>--size-only</code>: 仅比较文件大小</p> </li> </ul> </div></div></td> </tr> <tr> <td class="tableblock halign-left valign-top"><div class="content"><div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-sh" data-lang="sh">rsync -r /path/to/folder /path/to/dest</code></pre> </div> </div></div></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>递归复制文件夹 <code>/path/to/folder</code> 到 <code>/path/to/dest</code> 目录中</p> </div></div></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="ulist"> <ul> <li> <p><code>-r</code>: 递归</p> </li> <li> <p><code>/source/folder</code>: 复制文件夹本身及其内容</p> </li> </ul> </div></div></td> </tr> <tr> <td class="tableblock halign-left valign-top"><div class="content"><div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-sh" data-lang="sh">rsync -r /path/to/folder/ /path/to/dest</code></pre> </div> </div></div></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>递归复制文件夹 <code>/path/to/folder/</code> 中的内容到 <code>/path/to/dest</code> 目录中</p> </div></div></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="ulist"> <ul> <li> <p><code>-r</code>: 递归</p> </li> <li> <p><code>/source/folder/</code>: 只复制文件夹内容而不复制其本身</p> </li> </ul> </div></div></td> </tr> <tr> <td class="tableblock halign-left valign-top"><div class="content"><div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-sh" data-lang="sh">rsync -a /path/to/folder/ /path/to/dest</code></pre> </div> </div></div></td> <td class="tableblock halign-left valign-top" rowspan="5"><div class="content"><div class="paragraph"> <p>复制 <code>/path/to/folder/</code> 中的内容到 <code>/path/to/dest</code> 目录中,并保持源属性</p> </div></div></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="ulist"> <ul> <li> <p><code>-a</code>: archive (<code>-rlptgoD</code>), 将保持源属性</p> </li> </ul> </div></div></td> </tr> <tr> <td class="tableblock halign-left valign-top"><div class="content"><div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-sh" data-lang="sh">rsync -av /path/to/folder/ /path/to/dest</code></pre> </div> </div></div></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="ulist"> <ul> <li> <p><code>-v</code>: verbose, 打印进度等详细信息</p> </li> </ul> </div></div></td> </tr> <tr> <td class="tableblock halign-left valign-top"><div class="content"><div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-sh" data-lang="sh">rsync -ah --progress /path/to/folder/ /path/to/dest</code></pre> </div> </div></div></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="ulist"> <ul> <li> <p><code>-h</code>: human readable, 以人类可读的形式打印</p> </li> <li> <p><code>--progress</code>: 过程中打印进度信息</p> </li> </ul> </div></div></td> </tr> <tr> <td class="tableblock halign-left valign-top"><div class="content"><div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-sh" data-lang="sh">rsync -ah --progress --partial /path/to/folder/ /path/to/dest</code></pre> </div> </div></div></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="ulist"> <ul> <li> <p><code>--partial</code>: 意外中断后保留已经复制的文件部分以便在恢复后继续进行复制(通常在复制大文件时使用)</p> </li> </ul> </div></div></td> </tr> <tr> <td class="tableblock halign-left valign-top"><div class="content"><div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-sh" data-lang="sh">rsync -ahP /path/to/folder/ /path/to/dest</code></pre> </div> </div></div></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="ulist"> <ul> <li> <p><code>-P</code>: 等于 <code>--progress --partial</code></p> </li> </ul> </div></div></td> </tr> <tr> <td class="tableblock halign-left valign-top"><div class="content"><div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-sh" data-lang="sh">rsync -ahP --delete /path/to/folder/ /path/to/dest</code></pre> </div> </div></div></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>复制 <code>/path/to/folder/</code> 中的内容到 <code>/path/to/dest</code> 目录中,并保持源属性,如果后者中存在前者中不包含的文件则会被删除</p> </div></div></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="ulist"> <ul> <li> <p><code>--delete</code>: 如果目标目录中存在源目录中不存在的内容则会被删除</p> </li> </ul> </div></div></td> </tr> <tr> <td class="tableblock halign-left valign-top"><div class="content"><div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-sh" data-lang="sh">rsync -ahP --remove-source-files /path/to/folder/ /path/to/dest</code></pre> </div> </div></div></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>复制 <code>/path/to/folder/</code> 中的内容到 <code>/path/to/dest</code> 目录中,并保持源属性,复制完成后会移除前者</p> </div></div></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="ulist"> <ul> <li> <p><code>--remove-source-files</code>: 移除源文件(但会保留子目录结构)</p> <div class="ulist"> <ul> <li> <p>之后你可以执行 <code>find /path/to/folder/ -type d -empty -delete</code> 来移除这些子目录结构</p> </li> </ul> </div> </li> </ul> </div></div></td> </tr> </tbody> </table>