仅rsync * .php文件

时间:2012-06-14 00:56:15

标签: rsync

我怎样才能rsync镜像* .php文件?这给了我一堆空的dirs,我不想要那些。

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

1 个答案:

答案 0 :(得分:5)

这里的罪魁祸首是

--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/