rsync 的 --out-format 中的 %n 和 %f 有什么区别?

rsync 的 --out-format 中的 %n 和 %f 有什么区别?

我正在解析 rsync 的输出,并想确定我是否知道我得到的输入。我想知道是否使用--out-format '%i %n'--out-format '%i %f',但除了目录上的尾部斜杠外,它们有什么区别?

man rsyncd.conf说如下log format

  • %n 文件名(缩写形式;目录末尾带有“/”)
  • %f 文件名(发送方的长格式;无尾随“/”)

– “简短形式”和“长篇形式”有什么区别?

答案1

https://git.samba.org/?p=rsync.git;a=blob;f=log.c;h=b145ee1d893904835cd3c9276ec7c9c6fbaf13f3;hb=HEAD#l589似乎是源头。

%n 是更简单的版本,仅打印相对于目标的文件名,因此如果您使用源参数调用 rsync a/b,那么它将打印例如b/somefile

如果 ,%f 会打印相对于源的文件名am_sender,因此如果源参数是a/b,它将打印例如a/b/somefile。如果am_daemon,它似乎会在模块名称前面加上前缀,尽管我从未尝试过。它还会调用clean_fname,这似乎会从源中删除多余的双斜杠或点(例如,如果您使用它调用它,a//./b它仍会打印a/b/somefile)。

相关内容