ディレクトリ/ファイル構造をあるディレクトリから別のディレクトリに再帰的にコピーし、htmlファイルのみを保持しようとしています。インクルード/エクスクルードの単純なケースである必要がありますか?
最初にファイルを印刷したいだけです。それが正しければ、それらをコピーします。
rsync -a --list-only -v SOURCEDIR --exclude='.*' --include='**/*.html'
すべてのファイルをくれます。
rsync -a --list-only -v SOURCEDIR --include='**/*.html' --exclude='*'
そして
rsync -a --list-only -v SOURCEDIR --include='*.html' --exclude='*'
rsync -a --list-only -v SOURCEDIR --include=*.html --exclude=*
ファイルをください。
rsync -a --list-only -v SOURCEDIR --include='*.html' --exclude='*.*'
ディレクトリ構造全体とhtmlファイルのみが表示されるようです。しかし、私は空のディレクトリは必要ありません。
助けて!
Mac OS10.6の場合
Findを使用してハードワークを行うことを検討しましたか?
の線に沿った何か
find ./ -name "*.html" -exec rsync -R {} /target/base/directory/ \;
htmlファイルが見つかった./のディレクトリツリーを再作成し、/ target/base/directoryの下に同じものを構築します
Rsyncは、このような選択的なコピーについて混乱する可能性があります。私はあなたが求めているタスクを実行するために以下を使用します:
rsync -avP \
--filter='+ */' \
--filter='+ **/*.html' \
--filter='- *' \
--Prune-empty-dirs \
--delete \
/source/ \
/dest/
基本的に、検索にすべてのディレクトリを含めてから、すべての*.html
ファイルをリストに追加し、他のすべてのファイルを除外する必要があります。
--Prune-empty-dirs
オプションは、*.html
ファイルがないディレクトリを除外するので便利です。
これが最善の方法であるかどうかは100%わかりませんが、最後の試みにごくわずかな微調整を加えて機能させることができます。 Pruneディレクトリオプション(--Prune or -m
)。
rsync -am --list-only -v SOURCEDIR --include='*.html' --exclude='*.*'
[0]「最良」とは、最もクリーンで最も効率的な方法を意味します。これをもっとエレガントに表現する方法があるはずですが、それが何であるかはわかりません。