Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 哪个更好?使用cd和execute还是使用绝对路径?_Linux_Shell - Fatal编程技术网

Linux 哪个更好?使用cd和execute还是使用绝对路径?

Linux 哪个更好?使用cd和execute还是使用绝对路径?,linux,shell,Linux,Shell,假设我想在shell脚本中的特定目录上执行一些操作,如touch/rm等。 首先,我可以对那个目录做cd,然后再做。 其次,我可以使用绝对路径来实现这一点 我的问题是,从性能角度来看,哪一个会更好?哪一个更快 取决于您要访问的目录,即,如果路径太长,则最快的方法是绝对路径法,而在紧接着的下一个目录中使用路径是没有意义的。您可以自己计时: function timeThis { n=0 path="test/a" rm $path if [[ "$1" == ab

假设我想在shell脚本中的特定目录上执行一些操作,如
touch/rm
等。 首先,我可以对那个目录做
cd
,然后再做。 其次,我可以使用绝对路径来实现这一点


我的问题是,从性能角度来看,哪一个会更好?哪一个更快

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

您可以自己计时:

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

因此,在我尝试的路径上进行的多次迭代几乎都是相同的

我说过它将在shell脚本中进行。你考虑过吗@Sai SwaroopStack Overflow是一个关于编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参见帮助中心中的。也许或者会是一个更好的提问的地方。也看到