使用PHP清除带有系统命令的文件夹

时间:2013-11-20 22:07:38

标签: php shell directory

我使用该系统命令删除文件夹及其内容:

system('/bin/rm -rf ' . escapeshellarg($path))

但我不知道如何仅删除其内容。我试过这个,但文件夹仍然满了:

system('/bin/rm -rf ' . escapeshellarg($path.'/*'))

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

这应该有效:

system('/bin/rm -rf ' . escapeshellarg($path) . '/*')

为什么?

escapeshellarg()会引用$path,它会将您的代码引导到shell命令:

rm -rf '/path/*'

并且system()内部调用的shell将不再展开*

答案 1 :(得分:0)

这不起作用,因为你正在逃避星号,这导致bash忽略它。但是为了获得预期的结果,bash需要将星号扩展到目录中的所有文件。

有关详细信息,请访问http://www.gnu.org/software/bash/manual/html_node/Filename-Expansion.html#Filename-Expansion