古いサーバーのコンテンツを新しいサーバーに移行したいが、すべてをコピーしたくない.swfファイルはその中にあります。フラグについて知っていますが、--exclude
親ディレクトリ(およびその内容)ではないファイルのみを除外します。.swf文書
rsyncを使用してこれを実行できない場合、この場合bashスクリプトを使用してあるサーバーから別のサーバーにファイルをコピーできますか?
答え1
* .swfファイルを含むディレクトリのリストを作成し、そのリストをrsyncの除外ファイルに変換できます。
例えば
find /path/to/topdir/ -iname '*.swf' -printf "%h\n" |
sort -u |
sed -e 's/^/- /; s:$:/**:' > rsync-exclude.txt
出力は次のようになり、--exclude-from=FILE
rsyncオプションと一緒に使用できます。
- /path/to/topdir/directory1/**
- /path/to/topdir/directory2/**
- /path/to/topdir/directory3/**
- /path/to/topdir/directory5/subdir1/**
rsync のインクルードと除外オプションは習得が難しく、glob や正規表現とは異なる動作をします。パターンが正確に収まるまで--dry-run
練習する必要があります。--verbose