* .phpファイルのみをrsyncミラーリングするにはどうすればよいですか?これは私にもたくさんの空のdirsを与えます、そして私はそれらを望んでいません。
rsync -v -aze 'ssh ' \
--numeric-ids \
--delete \
--include '*/' \
--exclude '*' \
--include '*.php' \
user@site.com:/home/www/domain.com \
/Volumes/Servers/
* .phpファイルのみをrsyncミラーリングするにはどうすればよいですか?これは私にもたくさんの空のdirsを与えます、そして私はそれらを望んでいません。
rsync -v -aze 'ssh ' \
--numeric-ids \
--delete \
--include '*/' \
--exclude '*' \
--include '*.php' \
user@site.com:/home/www/domain.com \
/Volumes/Servers/
ここでの犯人は
--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/