假设我想在shell脚本中的特定目录上执行touch/rm
等操作。
首先,我可以对该目录执行cd
并执行此操作。
其次,我可以使用绝对路径来做到这一点。
我的问题是哪一个在性能方面会更好?哪一个更快?
答案 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)
取决于您要访问的目录,即。如果路径太长,最快的将是绝对路径方法,而在下一个目录中使用路径是没有意义的。