- ベストアンサー
execコマンドについて
おはようございます。 現在、execコマンドを使用して以下の ディレクトリのコピーを行おうとしておりますが 実際に実行してみたらところコピーされていませんでした。 何か問題があるのでしょうか? exec("cp-r c:\AAA\BBB\ c:\AAA\BBB2");
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
> 問題ないでしょうか? 問題があるかは、実際に試してみればすぐわかるでしょうから、省略しますが、 >他のサーバー上のフォルダをコピーしたい Windows上のファイルですか? UNC形式(\\[サーバ]\[フォルダ]みたいな奴)のパスをそのまま解釈できるシェルは無いと思います。 smbmountを使って、Windows共有をマウントした上で、コピーしては。
その他の回答 (2)
- taketan_mydns_jp
- ベストアンサー率58% (450/773)
こんにちは。 こちらで質問されているようですね。 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)。
- osamuy
- ベストアンサー率42% (1231/2878)
パっとみたところでは、 1)ファイルのパス区切りが¥ってことはWindows? 2)Windowsにcp-rというコマンドがあるの? 3)二重引用符でくっているけど、¥はエスケープしなくてよいの? 4)UNIX系だとしたら、ファイルパスの記述法が変。 5)UNIX系だとしたら、cp-rじゃなくて、cp -rだと思う。 ――などが、つっこみどころ。 実行環境を確認してみては。
補足
回答ありがとうございます。 実行環境ですがLinuxです。 また具体的に行いたい動作としては 他のサーバー上のフォルダをコピーしたいと 考えておりますが以下のような記述で 問題ないでしょうか? 例) exec("cp -r \\\\999.999.99.9\\フォルダ \\\\999.999.99.9\\フォルダコピー");