3

* .phpファイルのみをrsyncミラーリングするにはどうすればよいですか?これは私にもたくさんの空のdirsを与えます、そして私はそれらを望んでいません。

rsync -v -aze 'ssh ' \
--numeric-ids \
--delete \
--include '*/' \
--exclude '*' \
--include '*.php' \
user@site.com:/home/www/domain.com \
/Volumes/Servers/
4

1 に答える 1

6

ここでの犯人は

--include '*/'  

ワイルドカードの後に​​末尾のスラッシュを含めると、「/」で終わるすべてのファイル(つまり、すべてのディレクトリ)を転送するようにrsyncに指示します。
したがって、

rsync -v -aze 'ssh ' \
--numeric-ids \
--delete \
--exclude '*' \
--include '*.php' \
user@site.com:/home/www/domain.com \
/Volumes/Servers/

すべての.phpファイルを再帰的に検索するためにこれを使用していた場合は、**ワイルドカードを使用する必要があります。あれは、 --include '**/*.php'

別の方法(http://www.commandlinefu.com/commands/view/1481/rsync-find)は、ターゲットファイルを事前に検索してから、rsyncを使用することです。

find source -name "*.php" -print0 | rsync -av --files-from=- --from0 ./ ./destination/
于 2012-06-14T08:55:59.367 に答える