グローバルrsync
大手で始まるフィルタルールが/
されているアンカー転送のルートに。manページの「INCLUDE / EXCLUDE PATTERN RULES」セクションから引用:
パターンが/で始まる場合、ファイルの階層内の特定のスポットに固定されます。そうでない場合は、パス名の末尾と照合されます。これは、正規表現の先頭の^に似ています。したがって、「/ foo」は、「転送のルート」(グローバルルールの場合)またはマージファイルのディレクトリ(ディレクトリごとのルールの場合)の「foo」の名前と一致します。
コマンド(rsync ... -arv /home/ben home-ben/
)で、ファイル/home/ben/foo
はに転送されhome-ben/ben/foo
ます。転送のルートはでhome-ben
あり、正しいフィルターパスは/ben/foo
です。したがって、
- 一致
/home/ben/.ccache
するには、次のフィルタパスが必要です/ben/.ccache
- 一致
/home/ben/build/
するには、次のフィルタパスが必要です/ben/build/
より詳細な説明は、rsync(1)
マニュアルページの「包含/除外パターンのアンカー」セクションにあります。
単に先頭を除外すること/
は、必ずしもあなたが望むものではないことに注意してください。同じmanページセクションから再度引用:
アルゴリズムは上から下に再帰的に適用されるため、修飾されていない「foo」はツリー内の「foo」の名前と一致します。各パスコンポーネントがファイル名の最後にくるように動作します。固定されていない「sub / foo」でさえ、「sub」という名前のディレクトリ内で「foo」が見つかった階層の任意のポイントで一致します。転送のルートで一致するパターンを指定する方法の詳細については、包含/除外パターンのアンカーに関するセクションを参照してください。
したがって、のフィルタパターンは、のbuild/
どこでもビルドディレクトリに一致します。/home/ben
/home/ben/many/sub/directories/build/