その中にはたくさんのファイルがあります/dapp/parsD/parsapp/object
。rsync
このディレクトリ内の*と一致するファイルのみが必要です.sql、*.plそして*。しかし、同じディレクトリで次に終わる2つの特定のパターンも除外したいと思います。。。
可能ですか?私は走っていますHP-UX11iソースとターゲットについて。rsync
バージョンは3.1.0。
次の内容は想像しやすくなります。開発サーバーでは、X「または」X「は」に置き換えられます。D「または」D'、本番サーバーでは'血「または」人'。
次のファイルが含まれます。
/xapp/parsX/parsapp/object/*.sql
/xapp/parsX/parsapp/object/*.pl
/xapp/parsX/parsapp/object/*.sh
ただし、次のファイルは除外してください。
/xapp/parsX/parsapp/object/getbackdate*autosys.sh
/xapp/parsX/parsapp/object/parssendevent*.sh
ベストアンサー1
rsync
インクルード/除外/フィルタルールは使用するのが難しいかもしれませんが、非常に柔軟です。目的のタスクを実行する1つの方法は次のとおりです。
rsync --include-from=- /xapp/parsX/parsapp/object/ dest_dir <<EOF
- getbackdate*autosys.sh
- parssendevent*.sh
+ *.sql
+ *.pl
+ *.sh
- *
EOF
製造元--include-from
はからrsync
モードを読みますstdin
。これを使用せずに、各モードを個別--include
または--exclude
オプションとして指定できます。ルールをファイルに入れ、名前を付けたり読み取ったりするすべてのディレクトリでファイルを-F
検索することもできますrsync
。.rsync-filter
また、パターンの順序も重要です。最初の一致パターンに基づいてファイルを含める/除外します。また、- *
すべてがデフォルトで含まれているため、インクルードルールを機能させるには最後のルールが必要です。ただし、これは明示的に含まれていないすべてのディレクトリを除外するため、再帰転送の場合は問題になる可能性があります。この問題を解決する1つの方法は、+ **/
すべてのディレクトリを含むルールを含めることです。