有时当我使用时rsync
,它不会传输任何文件(这是预期的),但由于某种原因,它会在 shell 中输出一些随机目录。例如,执行以下命令:
rsync --include="z*" --include="*/" --exclude="*" -az --progress ORIG DEST
它正确地下载了所有以字母 开头的文件z
。但是,如果我完全没有以字母 开头的文件z
,有时我会在 shell 上看到以下内容:
receiving incremental file list
ebs1/apache/www/html/controle_pagamentos/
ebs1/apache/www/html/controle_pagamentos/arquivos/
ebs1/apache/www/html/controle_pagamentos/biblioteca_assinatura_digital/vendor/
ebs1/apache/www/html/controle_pagamentos/biblioteca_assinatura_digital/vendor/composer/
ebs1/apache/www/html/controle_pagamentos/notas_fiscais_emitidas/2020-06/
ebs1/apache/www/html/controle_pagamentos/notas_fiscais_emitidas/2020-07/
ebs1/apache/www/html/em_criacao/allnetti/imagens/
ebs1/apache/www/html/em_criacao/anlan1/arquivos/
ebs1/apache/www/html/em_criacao/barbantesarara/imagens/
ebs1/apache/www/html/em_criacao/conectesecomputadores/arquivos/
确实没有文件被传输(这是预料之中的,因为我没有以字母 开头的文件z
),但是它显示了那些包含大量文件但没有以字母 开头的目录z
。为什么会发生这种情况?
答案1
您需要包含--prune-empty-dirs
标志(-m
)。
此选项告知接收方
rsync
从文件列表中删除空目录,包括没有非目录子目录的嵌套目录。当发送方使用/ /规则rsync
递归扫描文件层次结构 时,这有利于避免创建一堆无用的目录。include
exclude
filter