一次将 40GB 的文件从一个文件夹移动到另一个文件夹

一次将 40GB 的文件从一个文件夹移动到另一个文件夹

我有一个文件夹/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 文件并解压。

一个例子:

  1. 创建档案

    tar -zcvf file.tar.gz /directory/*
    
    • c 创建
    • 压缩
    • 非常详细
    • f 使用文件作为目标
  2. 把它们分开

        split -b 40M file.tar.gz
    

    (默认情况下)它将创建以 xaa、xab、xac 开头的文件,每个文件大约 40Mb。

  3. 将它们移至新位置。

  4. 重新创建文件

     cat x* > file.tar.gz
    
  5. 并解压它...

    tar xvfz file.tar.gz .
    

相关内容