Rsync:特定のディレクトリの特定のファイル形式のみを同期する方法は?

Rsync:特定のディレクトリの特定のファイル形式のみを同期する方法は?

複数のディレクトリのすべての画像タイプファイルを/ imagesにコピーしたいと思います。同じディレクトリ内のすべてのビデオタイプファイルを/ videosにコピーしたいと思います。すべてのドットディレクトリとドットファイル(隠しファイルとディレクトリ)を除外したいと思います。

ディレクトリ構造:

DCIM (GOOD)
DCIM/.thumbnails (BAD)
DCIM/AccessoryCamera (GOOD)
.cloudagent (BAD)
Pictures (GOOD)
Downloads (GOOD)

努力しています:

rsync -ravtz --progress --prune-empty-dirs --include "DCIM/" --include "Download/*" --include "Picture/" --include "*.jpg" --include "*.png" --include "*.gif" --include "*.nef" --exclude '"*"' --exclude '".*"' --exclude '"*/"' --exclude '".*/"' --exclude '"DCIM/.thumbnails/*' --log-file=/mm/rsync.log /mnt/S8/sdcard/ '/mm/images'

rsync -ravtz --progress --prune-empty-dirs --include "DCIM/" --include "Download/*" --include "Picture/" --include "*.mov" --include "*.mpeg" --include "*.mpg" --include "*.mp4" --exclude '"*"' --exclude '".*"' --exclude '"*/"' --exclude '".*/"' --exclude '"DCIM/.thumbnails/*' --log-file=/mm/rsync.log /mnt/S8/sdcard/ '/mm/videos'

ベストアンサー1

バラよりRsyncフィルタ:1つのパターンのみをコピーrsync フィルタを構築する方法に関する追加のガイドライン。一般的なアイデアには、必要なもの(必要なものにつながるディレクトリを含む)が含まれ、残りは最後に除外されます。

rsync -az --progress --prune-empty-dirs \
    --exclude '.*' \
    --include "/DCIM" --include "/Download" --include "/Picture" --exclude '/*' \
    --include "*.jpg" --include "*.png" --include "*.gif" --include "*.nef" \
    --include '*/' --exclude '*' \
    --log-file=/mm/rsync.log /mnt/S8/sdcard/ '/mm/images'
  1. すべてのドットファイルを除外します。
  2. 最上位レベルでは、一部のディレクトリが含まれ、他のすべてのディレクトリは除外されます。
  3. 必要なファイル形式を含めてください。
  4. 最上位レベルから除外されたディレクトリを除くすべてのディレクトリが含まれ、残りのディレクトリはすべて除外されます。

おすすめ記事