PHP exec rm -Rf不适用于子目录

时间:2010-08-27 19:13:36

标签: php shell

我正在尝试删除特定文件夹中的所有内容,但它似乎不会影响子文件夹,但它应该,因为bash命令从控制台执行。

system('rm -Rf some_dir/*');

2 个答案:

答案 0 :(得分:2)

此命令中没有星号要求。如果要将目录与文件一起删除,也请删除斜杠。保留斜杠将删除文件,但保留目录。

同时检查此页面上的评论:http://php.net/manual/en/function.unlink.php

答案 1 :(得分:1)

这可能是因为执行脚本的用户没有删除目录的权限,或者shell不在正确的目录中。

如果您通过apache运行此程序,则该进程很可能由www-data拥有。如果“some_dir”目录不允许通过www-data进行写访问,那么它将无效。

由于您使用的是相对路径(非常危险),因此需要确保脚本在正确的目录中执行。如果可以的话,我建议您将路径更改为绝对路径 - “rm -rf / path / to / some_dir”。