QProcess::execute 使用 su 命令

QProcess::execute with su command

我正在尝试从 Qt 项目调用 tar

QProcess::execute("/bin/su", {"-", "user", "-c", "\'/bin/tar xpf /tmp/smt.tbz2 -C /tmp\'"})

我得到的是:

-su: /bin/tar xpf /tmp/smt.tbz2 -C /tmp: No such file or directory

看起来 su 命令没有正确解释 -c 之后的命令。

我认为问题在于您显式地引用了 运行 的命令:QProcess 竭尽全力确保按原样传递参数而不是进一步拆分。

改为尝试...

QProcess::execute("/bin/su", {"-", "user", "-c", "/bin/tar xpf /tmp/smt.tbz2 -C /tmp"});