如何复制具有一定文件大小限制的整个目录结构?

如何复制具有一定文件大小限制的整个目录结构?

由于某些原因,我需要进行数据克隆。

其中我需要复制一个巨大目录的整个结构,但我只想复制那些小于 1MB 的文件(其层次结构不变),因为我想避免克隆许多巨大的临时文件。

我应该使用哪些实用程序或命令来实现该目标?

zip命令可以直接实现这个目标吗?

答案1

rsync 有一个 --max-size 选项,它将排除超过一定大小的文件从一个目录复制到另一个目录。从手册页;

--最大尺寸=尺寸
    这告诉 rsync 避免传输任何大于指定 SIZE 的文件。 SIZE值可以加上字符串后缀以指示大小乘数,并且可以是小数值(例如lq--max-size=1.5mrq)。
此选项是转移规则,而不是排除规则,因此不会影响
    进入文件列表的数据,因此不会影响删除。它只是限制接收者请求传输的文件。
后缀如下:lqKrq(或lqKiBrq)是千字节(1024),
    lqMrq(或lqMiBrq)是兆字节(1024*1024),lqGrq(或lqGiBrq)是吉字节(1024*1024*1024)。如果您希望乘数为 1000 而不是 1024,请使用 lqKBrq、lqMBrq 或 lqGBrq。 (注意:所有值也接受小写。)最后,如果后缀以 lq+1rq 或 lq-1rq 结尾,则该值将在指示方向上偏移一个字节。
示例:--max-size=1.5mb-1 是 1499999 字节,--max-size=2g+1 是
    2147483649 字节。

相关内容