在exec上组合unix命令

时间:2012-08-28 05:57:52

标签: php unix exec cp

我使用exec()执行cp UNIX命令:

  $path = "/var/www/copy_dir/";
  $pp = "cp -R /var/www/top_folder/mid_folder/base_folder/".$user_id."/* ".$path;
  exec($pp, $ax, $ay);
  if($ay === 0) {
    return "done";
  } else {
    return "error";
    exit;
  }

这很好,它可以满足我的需要,但是,我希望在复制之前先在rm -rf执行$path(或其他更安全的方法来清除dir的内容)。我可以将其合并到我当前的$pp上吗?

2 个答案:

答案 0 :(得分:1)

是的,如果您想无条件地执行这两个命令,只需使用分号。或者(如g13n所述)双号&符号,只有在第一个命令成功时才会执行第二个命令。

$path = "/var/www/copy_dir/";
$pp = "rm -rf '$path*' && cp -R /var/www/top_folder/mid_folder/base_folder/".$user_id."/* ".$path;
exec($pp, $ax, $ay);
if($ay === 0) {
    return "done";
} else {
    return "error";
    exit;
}

答案 1 :(得分:0)

你的意思是先清除目录吗?

$pp = "rm -rf $path && cp -R /var/www/top_folder/mid_folder/base_folder/$user_id/* $path";