rsync 以人类可读的格式输出文件大小

rsync 以人类可读的格式输出文件大小

当你使用

rsync -avzh --stats --out-format="%t %f %b"

它以字节为单位输出,手册页说明如下

In addition, one or more apostrophes may be specified prior to a   
numerical escape to indicate that the numerical value should be made   
more human-readable. The 3 supported levels are the same as for the  
--human-readable command-line option, though the default is for human-  
readability to be off. Each added apostrophe increases the level  
(e.g. "%''l %'b %f").      

我的问题是,我必须在 %b 之间放置多少个撇号才能将其从字节更改为兆字节?

一旦我添加撇号,日志中就会发生这种情况

rsync -av  --out-format="%t %f %'b"



2016/10/29 01:00:22 home/data/Clients/P/Power Solutions CC/2017/Sales Report %'b

我已经输入了不复制 html 的命令,但似乎无法正确显示日志

答案1

阅读--human-readable手册页的部分内容可以发现

-h, --人类可读

以更人性化的方式输出数字。这样,大数字输出时会使用更大的单位,并带有 K、M 或 G 后缀。如果指定了此选项一次,则这些单位为 K (1000)、M (1000*1000) 和 G (1000*1000*1000);如果重复指定此选项,则单位为 1024 的幂,而不是 1000。

然而,这不是特别清楚,所以让我们科学的方法承担并设计一个实验。我们将使用一些我们手边的文件并使用 rsync 复制它们。我们将记录它为每个不同的命令行选项生成的相关输出。

以下是我们将用于进行实验的文件。

ls -lh test.*
-rw-rw-r--. 1 iain iain     40435 Oct 31 09:08 test.png
-rw-rw-r--. 1 iain iain 853483520 Oct 31 09:08 test.tar

然后我们将使用 rsync 来复制它们。请注意,我们每次都会删除目标文件,但不显示我们的工作。

测试 1

rsync -av  --out-format="%t %f %b" ./test.* /tmp/
sending incremental file list
2016/10/31 09:10:42 test.png 40482
2016/10/31 09:10:45 test.tar 853587747

所以%b给出一个简单的字节值

测试 2

rsync -av  --out-format="%t %f %'b" ./test.tar /tmp/
sending incremental file list
2016/10/31 09:11:25 test.png 40,482
2016/10/31 09:11:28 test.tar 853,587,747

%'b给出一个字节值,以,

测试 3

rsync -av  --out-format="%t %f %''b" ./test.* /tmp/
sending incremental file list
2016/10/31 09:12:29 test.png 40.48K
2016/10/31 09:12:32 test.tar 853.59M

%''b给出适当缩放的 KB/MB(和 GB)大小

最后

测试 4

rsync -av  --out-format="%t %f %'''b" ./test* /tmp/
sending incremental file list
2016/10/31 09:17:49 test.png 39.53K
2016/10/31 09:17:52 test.tar 814.04M

%'''b给定 KiB/MiB 等的值也适当缩放。

结论

如果您希望一切都以 MB 来表达,那么您就无法做到您想做的,因为输出会根据文件的需要缩放为 K/M/G 等。

如果您想要 K/M/G 等,那么就是 B '';如果您想要 KiB/MiB/GiB 等,那么'''就是您想要的。

所以你的问题的答案是,这取决于你的意思

将其从字节更改为兆字节

相关内容