在unix中复制大文件夹的最快方法

时间:2015-02-13 20:29:03

标签: unix optimization cp

我正在尝试复制1-5gb左右的大文件夹,其中包含文件范围为1kb-35mbs的子目录。我尝试使用'cp',但需要10分钟。在Windows中复制和粘贴似乎可以更快地完成工作。

我是unix的新手,我想知道是否有更快的替代品或cp,或者是一种优化其工作方式的方法。我已经阅读了缓冲区,但我对它们是如何工作感到困惑(所以我决定不使用它)。

我想做什么: 我需要将文件从我的H驱动器传输到其他地方的网络驱动器(也从网络驱动器中删除文件,以便可以将新文件复制到它)。这是我工作中非常直接的任务。只需要大约二十年才能完成。

P.S。不确定我是否被告知错误,但在unix中工作通常比Windows更快吗?

2 个答案:

答案 0 :(得分:1)

您可以尝试使用tar或压缩程序(如zipgzip)将整个目录结构放入单个存档文件中,复制存档文件,然后在目标位置取消存档。我怀疑这会节省你的整体时间,但至少复制步骤会更快。

tar cvf folder.tar /path/to/original/folder
cp folder.tar /path/to/destination
cd /path/to/destination
tar xvf folder.tar

答案 1 :(得分:0)

我认为tar似乎可以更快地工作,因为阅读和书写是在不同的过程中进行的,而不必彼此等待。它还具有的好处是,它在保留链接和权限之类的细微之处方面会更聪明:

tar cf - path | ( cd /my/new/location ; tar xf - )