linux - 哪个更好?使用 cd 并执行还是使用绝对路径?

标签 linux shell

假设我想在 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

所以在我尝试的路径上的多次迭代几乎是相同的

关于linux - 哪个更好?使用 cd 并执行还是使用绝对路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44350783/

相关文章:

c - 如何使用 C 列出目录中除 "."和 ".."之外的文件夹?

linux - 使用 awk 在 Linux 中分割日期

python - 遍历 .tar.gz 目录并连接文件(不解压缩文件夹)

shell - 替换没有正则表达式的字符串

linux - FTP Shell 脚本不适用于 Cronjob

linux - sed 正在用另一个命令的输出替换匹配的文本,但该命令的输出包含扩展字符

c atoi() 用于 linux 上的宽字符?

c - 无法理解以下函数声明

linux - 使用 shell 脚本设置路径变量 - 使用 shell 变量

Shell Hungman 没有在 ubuntu 上运行