rsync: 除外および埋め込みフィルタの混合

rsync: 除外および埋め込みフィルタの混合

次のモードでは、.pdfファイルをソースからターゲットにコピーし、正しく機能します。

rsync -rv --include="*.pdf" --include="*/" --exclude="*" --prune-empty-dirs /source/ ~/destination/

しかし、ファイル名にwebを含むファイルを除外したいのですが、うまくいかずにweb_profile.pdfファイルをコピー先にコピーしたいのですが、なぜこれが起こりますか?

rsync -rv --include="*.pdf" --include="*/" --exclude="*web*.pdf" --exclude="*" --prune-empty-dirs /source/ ~/destination/

**/また、特定のディレクトリ(2つの星や1つの星など)を除外することは不明です。

誰かがrsyncのパターンマッチングに関する私の疑いを解決できますか?

--include="*.pdf"match *pdf、たとえば特定のディレクトリを除外するには../web-info/..pdfどうすればよいですか?

ベストアンサー1

--includeオプションの順序--excludeによって異なります。

すべてのファイルが最初に含まれるため、後で*.pdf除外される内容は適用されません。また、包含/除外パターンは、パス名ではなくノード名(ファイル、ディレクトリなど)にも適用されます。ただし、パターンにまたはが*web*.pdfない場合、除外は除外されません。/***web*.pdf...web.../...pdf

一致するディレクトリの下のPDF以外のすべてのPDFが必要な場合は、*web*次のようになります。

rsync -rv --exclude "*web*/" --include="*.pdf" --include="*/" --exclude="*" --prune-empty-dirs /source/ ~/destination/

*web*これにより、rsyncが他のすべてのディレクトリを含むすべてのファイルを*.pdf含み、他のすべてのファイルを除外する一致するディレクトリに繰り返されるのを防ぎます。

**上記の解決策を好むが、パターンにaを使用することも効果があるかもしれません。

rsync -rv --exclude "**web*.pdf" --include="*.pdf" --include="*/" --exclude="*" --prune-empty-dirs /source/ ~/destination/

おすすめ記事