PHP shell tar问题,返回码2
想要使用 PHP 中的 tar 来归档文件夹:
$result = shell_exec("tar cf $sourceFile $sourceFolder -C $source > /dev/null; echo $?");
var_dump($result);
输出:
string(2) "2 "
> /dev/null; echo $?
这个东西是用来输出linux下脚本的结果码的;
-C $source
- 在做任何事情之前更改到正确的文件夹
这真的很奇怪,因为当我从 Linux 控制台运行它时,它工作得很好 - 创建存档,所以这不是权限问题。
其他脚本如“whoami”或“ls”也可以正常工作。
有什么想法吗?
Want to archive a folder using tar from PHP:
$result = shell_exec("tar cf $sourceFile $sourceFolder -C $source > /dev/null; echo $?");
var_dump($result);
Output:
string(2) "2 "
the > /dev/null; echo $?
thing is for outputing the result code of a script under linux;
the -C $source
- changes to the right folder before doing anything
This is really strange because when i run this from linux console, it works just fine - creates the archive, so it's not a permission issue.
Other sripts like "whoami" or "ls" work fine.
Any ideas what does it mean?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
也许:
shell_exec("/bin/bash tar ....")
Maybe:
shell_exec("/bin/bash tar ....")
仅出于调试目的,将 stderr 重定向到 stdout 并使用 passthru() 显示完整的输出(可能包括错误消息)。
Just for debugging purposes redirect stderr to stdout and use passthru() to display the complete output (possibly including error messages).