【问题标题】:QProcess::execute with su commandQProcess::用 su 命令执行
【发布时间】:2019-04-26 12:37:30
【问题描述】:

我正在尝试从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 之后的命令。

【问题讨论】:

标签: linux qt tar su


【解决方案1】:

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

不如试试……

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

【讨论】: