2
mkdir ("dir1/{dir1-1,dir1-2}",0755,TRUE);

此命令使用名为“{dir1-1,dir1-2}”的单个子文件夹创建文件夹 dir1,而不是将 dir1-1 和 dir1-2 创建为 dir1 的两个子文件夹。

知道如何通过上面的单个 mkdir 命令使其工作吗?

4

2 回答 2

6

PHP 不像 shell 那样支持大括号扩展。如果你想创建多个目录,你将不得不mkdir()多次调用,你可以通过循环轻松地做到这一点。

您可以将TRUE第三个参数传递给mkdir()- 这意味着如果备份树的所有目录不存在并且父级可写,则它们也将被创建。在循环中操作时,您可以安全地传递TRUE给所有调用,给定目录的第一次迭代将创建它,后续调用不会产生不利影响。

例如:

$toCreate = array(
  'dir1/dir1-1',
  'dir1/dir1-2'
);

$permissions = 0755;

foreach ($toCreate as $dir) {
  mkdir($dir, $permissions, TRUE);
}
于 2012-04-27T23:33:53.447 回答
1

shell mkdir 可以做:

mkdir -p /foo/bar/peng

所以现在你可以从 php.ini 中调用外部 shell 命令。但要注意安全。

于 2012-04-27T23:30:39.307 回答