注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

永福的技术博客

Linux运维

 
 
 

日志

 
 

shell创建256×256目录效率提高12倍的方法  

2012-05-26 11:43:41|  分类: 软件编程 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

1.创建256×256目录的常规方法:
[root@home shells]# cat mkdir_1.sh

#!/bin/sh
num=(0 1 2 3 4 5 6 7 8 9 a b c d e f)
for x in ${num[@]}
do
        for y in ${num[@]}
        do
                for z in ${num[@]}
                do
                        for k in ${num[@]}
                                do
                                        /bin/mkdir -m 700 -p /tmp/yftest_1/$x$y/$z$k
                                done
                done
        done
done

方法一耗时:
[root@home shells]# time ./mkdir_1.sh

real    2m54.212s
user    0m33.606s
sys     1m54.906s

2.创建256×256目录效率提高12倍的方法
[root@home shells]# cat mkdir_2.sh

#!/bin/sh
Dirs=''
num=(0 1 2 3 4 5 6 7 8 9 a b c d e f)
for x in ${num[@]}
do
        for y in ${num[@]}
        do
            Dirs="$Dirs $x$y "
        done
done

mkdir -m 700 -p /tmp/yftest_2
cd /tmp/yftest_2
/bin/mkdir -m 700 -p $Dirs
for z in $Dirs
do
    cd $z
    /bin/mkdir -m 700 -p $Dirs
    cd ../
done

方法二耗时:
[root@home shells]# time ./mkdir_2.sh

real    0m14.340s
user    0m0.402s
sys     0m2.932s

3.令人疑惑的第三种方法
[root@home shells]# cat mkdir_3.sh

#!/bin/sh
Dirs="00  07  0e  15  1c  23  2a  31  38  3f  46  4d  54  5b  62  69  70  77  7e  85  8c  93  9a  a1  a8  af  b6  bd  c4  cb  d2  d9  e0  e7  ee  f5  fc 01  08  0f  16  1d  24  2b  32  39  40  47  4e  55  5c  63  6a  71  78  7f  86  8d  94  9b  a2  a9  b0  b7  be  c5  cc  d3  da  e1  e8  ef  f6  fd 02  09  10  17  1e  25  2c  33  3a  41  48  4f  56  5d  64  6b  72  79  80  87  8e  95  9c  a3  aa  b1  b8  bf  c6  cd  d4  db  e2  e9  f0  f7  fe 03  0a  11  18  1f  26  2d  34  3b  42  49  50  57  5e  65  6c  73  7a  81  88  8f  96  9d  a4  ab  b2  b9  c0  c7  ce  d5  dc  e3  ea  f1  f8  ff 04  0b  12  19  20  27  2e  35  3c  43  4a  51  58  5f  66  6d  74  7b  82  89  90  97  9e  a5  ac  b3  ba  c1  c8  cf  d6  dd  e4  eb  f2  f9 05  0c  13  1a  21  28  2f  36  3d  44  4b  52  59  60  67  6e  75  7c  83  8a  91  98  9f  a6  ad  b4  bb  c2  c9  d0  d7  de  e5  ec  f3  fa 06  0d  14  1b  22  29  30  37  3e  45  4c  53  5a  61  68  6f  76  7d  84  8b  92  99  a0  a7  ae  b5  bc  c3  ca  d1  d8  df  e6  ed  f4  fb"

mkdir -m 700 -p /tmp/yftest_3
cd /tmp/yftest_3
mkdir -m 700 -p  $Dirs

for x in $Dirs
do
    cd $x
    mkdir -m 700 -p $Dirs
    cd ../
done

方法三耗时:
[root@home shells]# time ./mkdir_3.sh

real    0m15.143s
user    0m0.341s
sys     0m3.230s

[永福原创]转载请注明:来自http://rickie622.blog.163.com
从以上三个实验中,我们可以看出,方法二的耗时最少,是常规方法效率的12倍。
但方法三却让我比较疑惑,按程序上的理解,应该比方法二时间少才对,求解?


更新:
方法四:
[root@localhost ~]# cat mkdir_4.sh 
#!/bin/sh

mkdir -p /tmp/testa/{0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f}{0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f}/{0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f}{0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f}

方法四耗时:
[root@localhost ~]# time ./mkdir_4.sh 

real    0m11.691s
user    0m0.372s
sys     0m3.807s
  评论这张
 
阅读(730)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017