rsync で特定のファイルだけコピー

rsync -r \

--exclude=* \
--include=*/ \

としたうえでコピーしたファイルだけ include で相対パスで追加していく。最後に

src dest

の記述を忘れずに。

これは rsync では

  • * を exclude してまず全ファイルをコピー対象から外す
  • コピーしたいファイルを include してコピー対象に入れる

が基本だが、* を exclude した段階でサブディレクトリをチェックしに行かなくなるので、*/ も include してディレクトリ名をコピー対象にしておく必要があるという罠である。(絶対罠だ。)

くり返す。

--include=*/

がキモ。

More