我有一个文件夹/x/
,里面有很多子文件夹和子文件。我需要将所有内容移入其中,/x/
但/y/
我需要一次移动 40GB。我这样做了mv /x/a*
,然后第二天mv /x/b*
再做,但有时这可能意味着移动了很多文件或很少。我需要更可预测的东西。我想运行,mv /x/*
但以某种方式将其限制为移动的总文件数为 40GB。我有什么选择?不是说需要,但我会把它放在.sh
脚本中并使用 cron。
谢谢 =)
编辑:我标记了最佳答案,但它对我的情况不起作用。我正在使用 ACD_CLI 将我的备份和其他文件上传到 Amazon Cloud Drive。我所做的是反向解决问题。我的问题是如何在白天不占用带宽的情况下上传大量文件。我在家工作,所以不能使用 Skype 会议等。答案是在我的路由器上打开 QOS。我现在可以全天候上传,我的 Skype 和其他流量优先于我的文件上传。这是下面标记的一个很好的解决方案,我知道它将来会帮助其他人。
答案1
创建一个包含所有需要移动的文件的压缩 tar 文件,将 tar 文件拆分为 40Gb 大小的块,然后一次移动 1 个。完成后,将文件合并为一个大型 tar 文件并解压。
一个例子:
创建档案
tar -zcvf file.tar.gz /directory/*
- c 创建
- 压缩
- 非常详细
- f 使用文件作为目标
把它们分开
split -b 40M file.tar.gz
(默认情况下)它将创建以 xaa、xab、xac 开头的文件,每个文件大约 40Mb。
将它们移至新位置。
重新创建文件
cat x* > file.tar.gz
并解压它...
tar xvfz file.tar.gz .