林海谐缘俱乐部's Archiver

linhai 发表于 2009-4-28 19:28

GUN cp 与 tar 拷贝文件速度 比较

二个命令大家最熟悉不过了。不过对于处理速度上那个更快? CU及其它论坛都有讨论,我做了一下实验。比较下。。实践出真知,CP要快。  
老曹写了一个tar快速拷贝文件小技巧  

[table]

[tr]
[td]# cd /data/test1
# tar -cf - . | (cd /data/test2 ; tar -xvpf -)[/td][/tr][/table]  
我简单实践:  
一、相对路径VS绝对路径  

[table]

[tr]
[td]
# time tar -cf - . | (cd /tmp/test2/ ; tar -xvpf -)
./
./linuxtone_2009_04_09.log.gz
./linuxtone_2009_04_10.log.gz
./linuxtone_2009_04_11.log.gz
./linuxtone_2009_04_12.log

real 0m3.150s
user 0m0.108s
sys 0m1.754s



相对路径
# time cp -r * ../test2/

real 0m1.167s
user 0m0.053s
sys 0m1.065s


cp 比tar 快出 1.983s


绝对路径
# time cp -r * /tmp/test2/

real 0m1.170s
user 0m0.070s
sys 0m1.056s

cp 比tar 快出 1.98s[/td][/tr][/table]  
二、文件属性  
有人说cp不能连文件及文件夹的属性一起复制过去。不如tar好。其实man cp 就可以看到  

[table]

[tr]
[td]-p same as --preserve=mode,ownership,timestamps
--preserve
preserve the specified attributes (default: mode,ownership,timestamps) and security contexts, if possi-
ble additional attributes: links, all
[/td][/tr][/table]  
因为目录里有文件也有文件夹,可使用  

[table]

[tr]
[td]-a -a, --archive
same as -dpR[/td][/tr][/table]  
测试速度跟上面速度相差不大。cp 还是比tar 快  
三、如果cp 看不到进度可如下:  

[table]

[tr]
[td]cd /mnt/cdrom
for i in *
do
cp $i 目标目录
echo $i is ok....
done[/td][/tr][/table]

rtyuiop 发表于 2009-7-7 02:17

:dizzy:

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.