哪个更好?使用cd并执行或使用绝对路径?

时间:2017-06-04 04:31:50

标签: linux shell

假设我想在shell脚本中的特定目录上执行touch/rm等操作。 首先,我可以对该目录执行cd并执行此操作。 其次,我可以使用绝对路径来做到这一点。

我的问题是哪一个在性能方面会更好?哪一个更快?

2 个答案:

答案 0 :(得分:2)

你可以自己计时:

function timeThis {
    n=0 
    path="test/a"
    rm $path
    if [[ "$1" == abs ]]; then
        path="$(pwd)/$path"
    fi  
    echo "$path"
    while [[ $n -lt 10000 ]]; do
        touch $path
        let n++ 
    done
}

echo "absolute"
time timeThis abs 
echo "relative"
time timeThis rel 

我得到了:

absolute

real    0m5.502s
user    0m3.394s
sys 0m2.398s

relative    
real    0m5.492s
user    0m3.599s
sys 0m2.373s

所以在我试过的路径上的这么多迭代几乎是一样的

答案 1 :(得分:0)

取决于您要访问的目录,即。如果路径太长,最快的将是绝对路径方法,而在下一个目录中使用路径是没有意义的。