特定のディレクトリ内の特定のファイルのみを同期する方法

特定のディレクトリ内の特定のファイルのみを同期する方法

ルートディレクトリ+他のディレクトリ内の*.jpgすべてのファイルを同期しようとしています。/var/www/data/models/days//var/www/data

私は以下が欲しい:

rsync -az --delete --include='/models' --include='*.jpg' --exclude='*' $SRC::/var/www/data /var/www/data しかし、何も同期されません。私は何が間違っていましたか?

*.jpg注:同じファイル名match()を持つ別のディレクトリが必要なので、/models/daysを含めるようにソースやターゲットを変更したくありません。

答え1

/models巡回には含まれていましたが、サブディレクトリは含まれませんでした。ディレクトリを除いて、rsyncはディレクトリを巡回せず、その内容を含めることはできません。

--include='*/'すべてのサブディレクトリを含み、空のディレクトリをコピーしないため-mに使用されます。詳細については、次を参照してください。Rsyncフィルタ:1つのパターンのみをコピー

答え2

オプション--includeでは、主要なサブディレクトリ名を考慮する必要があります。以下を試してください**.jpg。rsync関連の**演算子は、スラッシュなどの文字と一致します。

関連情報