![rsync 的 --out-format 中的 %n 和 %f 有什么区别?](https://linux22.com/image/1543598/rsync%20%E7%9A%84%20--out-format%20%E4%B8%AD%E7%9A%84%20%25n%20%E5%92%8C%20%25f%20%E6%9C%89%E4%BB%80%E4%B9%88%E5%8C%BA%E5%88%AB%EF%BC%9F.png)
我正在解析 rsync 的输出,并想确定我是否知道我得到的输入。我想知道是否使用--out-format '%i %n'
或--out-format '%i %f'
,但除了目录上的尾部斜杠外,它们有什么区别?
man rsyncd.conf
说如下log format
:
- %n 文件名(缩写形式;目录末尾带有“/”)
- %f 文件名(发送方的长格式;无尾随“/”)
– “简短形式”和“长篇形式”有什么区别?
答案1
%n 是更简单的版本,仅打印相对于目标的文件名,因此如果您使用源参数调用 rsync a/b
,那么它将打印例如b/somefile
。
如果 ,%f 会打印相对于源的文件名am_sender
,因此如果源参数是a/b
,它将打印例如a/b/somefile
。如果am_daemon
,它似乎会在模块名称前面加上前缀,尽管我从未尝试过。它还会调用clean_fname
,这似乎会从源中删除多余的双斜杠或点(例如,如果您使用它调用它,a//./b
它仍会打印a/b/somefile
)。