理解 sudo 和“.”

Léo*_* 준영 0 unix sudo

我正在阅读MySQL 的手册

他们建议我命令

cd /usr/local/mysql
sudo ./bin/mysqld_safe          // it seems that sudo = . + master rights
Run Code Online (Sandbox Code Playgroud)

是相同的

. /usr/local/mysql/bin/mysql    // only ., no master rights
Run Code Online (Sandbox Code Playgroud)

这两个命令的作用相同吗?

wom*_*ble 5

不,这些命令完全不同。你可能有错字——以下两个命令等效的:

cd /usr/local/mysql
sudo ./bin/mysqld_safe
Run Code Online (Sandbox Code Playgroud)

和:

sudo /usr/local/mysql/bin/mysqld_safe
Run Code Online (Sandbox Code Playgroud)


pQd*_*pQd 5

. /some/path
Run Code Online (Sandbox Code Playgroud)

执行 [ 或包括 - 即执行 ] 您指向的 shell 脚本。

./some/path
Run Code Online (Sandbox Code Playgroud)

[注意点后空间不足]使用相对路径[从当前目录,而不是从文件系统顶部]执行程序/脚本

sudo 使用其他 [ 通常是 root ] 用户的权限执行给定的命令。

有区别

cd /usr/local/mysql
./bin/mysqld_safe
Run Code Online (Sandbox Code Playgroud)

/usr/local/mysql/bin/mysqld_safe
Run Code Online (Sandbox Code Playgroud)

不同之处在于当前工作目录。对于 mysql 可能不计量,但对于使用相对路径的其他/写得不好的程序 - 它可能会计量。