红联Linux门户
Linux帮助

逐文件cp * 与 cp -r整个文件夹 哪种方式更快

发布时间:2011-12-17 19:41:19来源:红联作者:wfc1102
[i=s] 本帖最后由 wfc1102 于 2011-12-18 10:13 编辑 [/i]

不小心一个Ctr+Enter把还没编辑完的提问发了出去。这里重写一下:
(服务器)从一个盘cp资料到另一个盘是遇到这种疑问:如cp -r /disk1/data0/ /disk2/data_all 与 cp /disk1/data0/* /disk2/data_all
这两种方法那个更快些,为什么?能分析的详细点更好!
我百度上大概知道整个文件夹的拷贝比单个单个文件的拷贝快些,只很想知道为什么!

进一步,对于cp /disk1/data0/* /disk2/data_all这种方式,我还可以同时打开多个界面cp /disk1/data0/var1* /disk2/data_all、
cp /disk1/data0/var2* /disk2/data_all 以及cp /disk1/data0/var3* /disk2/data_all同时拷贝,这样拷贝速度是否会加倍?还是会受到硬盘传输速度的限制反而因任务调配耗时而降低了速度。

我想加快拷贝速度,大家帮我想想有什么好办法?
文章评论

共有 4 条评论

  1. hcc 于 2011-12-18 01:10:22发表:

    速度可以用命令测试,完成后会显示时间
    time { cp -r /disk1/data0/ /disk2/data_all }
    另一条也一样

    原理,可能需要读源代码了

  2. wfc1102 于 2011-12-17 19:59:01发表:

    非常感谢版主,*的确不包含以.开头的文件和文件夹。这里说明下/disk1/data0/ 中都是我所需要的数据,隐藏的东西就只有.和..,即两种方式拷贝的数据量是相等的。由于所需cp的数据有3T,所以很关心哪一种方式更快些,同时也想知道为什么!

  3. 相思爱文 于 2011-12-17 19:48:55发表:

    发完帖后,点编辑,可以对帖文进行修改,如果没有回复,还可删除。

  4. 相思爱文 于 2011-12-17 19:47:12发表:

    cp -r /disk1/data0/ (后面的部分省略,下同)
    cp /disk1/data0/*
    意义不同,第一个是:复制 /disk1/data0/和这个目录下的所有文件和目录,包括隐藏的文件和子目录
    第二个是复制 /disk1/data0/目录下的所有文件,不包括子目录和隐藏文件