2016-05-12 3 views
1

あるマシンから別のディレクトリにいくつかのディレクトリをrsyncする必要がありますが、ツリーの一部だけが必要です。私はそれを説明する最も簡単な方法は、tree -f(各ファイルの完全なパスを印刷する)を実行し、次にgrepフルパスでrsynchの一致のみgrepとすることです。実際にはそういう風に私はうれしいでしょうが、サーバへのシェルアクセスはありません。ただrsyncです。 grep出力に基づく2段階の解決策は、rsync --list-onlyです。ディレクトリをrsyncと正しく一致させるには

私もこののみディレクトリに接尾辞として(階層がかなり硬質である)ので、私は

rsync --dry-run -vrlpt --include='*/' --include='**/*mon/' --exclude='*' --prune-empty-dirs

が、それをやってみました表示されていることを知っているので、それは、実際には簡単です何にもマッチしませんでした。 Dottoは--include='*mon/'で、アスタリスクが2つ付いています。 --prune-empty-dirsを避けて、すべてのディレクトリを一致させましたが、ファイルはありません。私の問題です。そこで、除外パターンの直前にいくつかのファイル拡張子のインクルードパターンを追加しようとしましたが(私はそれらをすべて追跡したくなくて変更する可能性があるため、むしろそうしません)、しかしそれらは単に"mon"の木にないもの。

そして、はい、私は(つまり、あなたが上見ることができるもの)私はいくつかの進歩を遂げて助けた、thisthisthisと無数の他の人を見ましたが、問題が解決しない...次のような

答えて

0

何か

rsync -arvm --include='*/' --include='*mon/***' --exclude='*' /path/to/source /path/to/dest

(この問題は2番目以降のものと一致しています)
関連する問題