【问题标题】:Empty a folder with a system command with PHP使用 PHP 使用系统命令清空文件夹
【发布时间】:2013-12-05 03:52:04
【问题描述】:

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

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

但我不知道如何仅删除其内容。我试过了,但文件夹还是满的:

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

有什么想法吗?

【问题讨论】:

  • +1 使用escapeshellarg()

标签: php shell directory


【解决方案1】:

这应该可行:

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

为什么?

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

rm -rf '/path/*'

以及 system() 内部调用的 shell 将不再扩展 *

【讨论】:

  • 不客气!最好你逃避一次太多然后一次太少......;)
【解决方案2】:

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

欲了解更多信息,请访问http://www.gnu.org/software/bash/manual/html_node/Filename-Expansion.html#Filename-Expansion

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-27
    • 1970-01-01
    • 2021-01-22
    • 1970-01-01
    • 1970-01-01
    • 2019-04-01
    • 2014-06-23
    • 1970-01-01
    相关资源
    最近更新 更多