如何使用rsync获取文件夹大小?

时间:2016-10-23 13:18:18

标签: rsync

我想知道是否有一种方法(命令)可以用来查找rsync地址的大小而无需启动同步?

例如我如何找到coll.find({paymentDate: {$gte: "2016-02-18", $lte: "2016-06-19"}}); 的大小?

3 个答案:

答案 0 :(得分:5)

如果你结合-n标志(干运行或模拟传输,实际上并不复制任何文件)和--stats,你应该能够找到复制的文件总数。

示例(模拟本地复制的两个文件,每个445个字节):

$ rsync -avz -n --stats . ../test/
building file list ... done

Number of files: 14
Number of files transferred: 0
Total file size: 890 bytes
Total transferred file size: 0 bytes
Literal data: 0 bytes
Matched data: 0 bytes
File list size: 299
File list generation time: 0.001 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 315
Total bytes received: 20

sent 315 bytes  received 20 bytes  670.00 bytes/sec
total size is 890  speedup is 2.66

(请注意文件总大小行。)

--stats部分中的官方rsync docs

  

文件总大小是传输中所有文件大小的总和。   这不计算目录或特殊文件的任何大小,但是   确实包括符号链接的大小。

您还可以考虑以更易于阅读的格式输出数字的-h选项。

答案 1 :(得分:1)

你可以尝试:

rsync --info=stats2 -h -r host:directory/

记住尾随斜线。

-h human-readable
-r recursive

远程目录的大小打印在输出的末尾。

答案 2 :(得分:1)

rsync -avvni sourcedir / destdir /

分解为:

-a archive meta-option - 额外的冗长 - 干运行 -i逐项更改

通常,rsync发生在两个文件夹之间。使用rsync查找两个目录之间已更改数据的大小

因此我们需要提供源和目标目录以查找增量差异。

参考:Running protractor on Chrome 54 fails