为什么 `rsync` 即使没有进行任何传输也会显示目录

为什么 `rsync` 即使没有进行任何传输也会显示目录

有时当我使用时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递归扫描文件层次结构 时,这有利于避免创建一堆无用的目录。includeexcludefilter

相关内容