0

私はこれをUNIXコマンドexec()で実行するために使用します:cp

  $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現在のと組み合わせることはできます$ppか?

4

2 に答える 2

1

はい、無条件に両方のコマンドを実行したい場合は、セミコロンを使用してください。または (g13n で言及されているように) 二重アンパサンド。最初のコマンドが成功した場合にのみ 2 番目のコマンドを実行します。

$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;
}
于 2012-08-28T06:01:30.933 に答える
0

最初にディレクトリをクリアするということですか?

$pp = "rm -rf $path && cp -R /var/www/top_folder/mid_folder/base_folder/$user_id/* $path";
于 2012-08-28T06:01:01.057 に答える