我在 Centos 7 下使用 bash 版本 3.0.9,但似乎找不到允许我将单引号传递给 out-format 参数的转义组合。我尝试了所有能想到的组合,将选项括在单引号或双引号中,用反斜杠转义单引号,连接字符串,将它们作为变量传递,但似乎都不起作用。显然,下面的命令应该可以给我提供人类可读的文件大小,但我只得到了您在输出中看到的单引号:
$ rsync -crthivn --out-format="%n %''l" /from_folder /to_folder
sending incremental file list
test/ %''l
test/file1 %''l
test/folders_current %''l
test/test2/ %''l
test/test2/file2 %''l
sent 191 bytes received 29 bytes 440.00 bytes/sec
我以为 bash 转义是问题的根源,但当我尝试使用 sh 和 csh 时,我得到了相同的结果。所以我现在非常困惑!任何帮助都值得感激。
答案1
只是为了跟进这一点,它看起来像是 3.0.9 中的一个错误 - 我发现升级到 rsync 3.1.2 后问题就消失了(您必须手动执行此操作,因为您只能从官方 Centos 存储库获取到 3.0.9)。
我按照这里的说明进行操作: