リモートサーバーの特定のサブディレクトリにある特定のファイルのみを再帰的に同期する

リモートサーバーの特定のサブディレクトリにある特定のファイルのみを再帰的に同期する

私のディレクトリ構造は次のとおりです。

./model1
./model1/correct_data/file1.txt
./model1/bad_data/file1.txt
./model2
./model1/correct_data/file1.txt
./model1/bad_data/file1.txt

file1.txtサブディレクトリにあるものだけを同期できます。correct_data

file1.txtrsync は、次のように、すべてのサブディレクトリでのみ再帰的に同期するために使用できます。

rsync -zarvL --prune-empty-dirs --include "*/" --include="file1.txt" --exclude="*"' <from> <to>

correct_dataしかし、サブディレクトリに同期を追加する方法がわかりません。

ベストアンサー1

私はこれを使用します

(
  cd {from} &&
    rsync -zavLR */correct_data/file1.txt {to}/
)

新しいコンポーネントは、-R各ファイルのソースパスをターゲットルートディレクトリに適用することです{to}-rで提案したように削除しました-a-zターゲットが実際にリモートターゲットである場合にのみ関連します。本当に本気ですか-L

cd {from}サブシェルはコマンドの制限スコアを維持しますrsync

おすすめ記事