如何仅 rsync 镜像 *.php 文件?这也给了我一堆空的目录,我不想要那些。
rsync -v -aze 'ssh ' \
--numeric-ids \
--delete \
--include '*/' \
--exclude '*' \
--include '*.php' \
user@site.com:/home/www/domain.com \
/Volumes/Servers/
如何仅 rsync 镜像 *.php 文件?这也给了我一堆空的目录,我不想要那些。
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/