• ベストアンサー

execコマンドについて

おはようございます。 現在、execコマンドを使用して以下の ディレクトリのコピーを行おうとしておりますが 実際に実行してみたらところコピーされていませんでした。 何か問題があるのでしょうか? exec("cp-r c:\AAA\BBB\ c:\AAA\BBB2");

質問者が選んだベストアンサー

  • ベストアンサー
  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.2

> 問題ないでしょうか? 問題があるかは、実際に試してみればすぐわかるでしょうから、省略しますが、 >他のサーバー上のフォルダをコピーしたい Windows上のファイルですか? UNC形式(\\[サーバ]\[フォルダ]みたいな奴)のパスをそのまま解釈できるシェルは無いと思います。 smbmountを使って、Windows共有をマウントした上で、コピーしては。

参考URL:
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/605usens.html

その他の回答 (2)

回答No.3

こんにちは。 こちらで質問されているようですね。 Linuxでのコピーのコマンドとしてとらえて下さい。 コピーするときのコマンドは cp 再帰的に(ディレクトリごと)コピーするときのオプションが -r です。 Linuxではディレクトリは / で表現されます。 基本的には相対パスで大丈夫だと思います。例えば、copy.phpで以下の BBBを BBB2にする場合は exec("cp -r ./AAA/BBB ./AAA/BBB2"); ./copy.php ./AAA/BBB ./AAA/BBB2 でコピー出来る筈です。この場合はPHPから./AAAに書き込む権限が無ければなりません(例えばAAAの実行権限は777)。

参考URL:
http://homepage2.nifty.com/cs/linux_command/command/cp.html
  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

パっとみたところでは、 1)ファイルのパス区切りが¥ってことはWindows? 2)Windowsにcp-rというコマンドがあるの? 3)二重引用符でくっているけど、¥はエスケープしなくてよいの? 4)UNIX系だとしたら、ファイルパスの記述法が変。 5)UNIX系だとしたら、cp-rじゃなくて、cp -rだと思う。 ――などが、つっこみどころ。 実行環境を確認してみては。

morimori7
質問者

補足

回答ありがとうございます。 実行環境ですがLinuxです。 また具体的に行いたい動作としては 他のサーバー上のフォルダをコピーしたいと 考えておりますが以下のような記述で 問題ないでしょうか? 例) exec("cp -r \\\\999.999.99.9\\フォルダ \\\\999.999.99.9\\フォルダコピー");

関連するQ&A