• 締切済み

execからのls grepコマンドについて

PHPで階層になっているディレクトリ名をすべて取得するプログラムを作成しています。 ディレクトリ数、ファイル数が非常に多いので動作速度向上のためにlinuxコマンドで取得するために以下の命令を記述しました。 exec("ls -l | grep '^d' ./hogehoge/hugahuga/",$aDir); var_dump($aDir); これを実行しても $aDirに値が入りません。 どうすれば望みどおりの結果になるでしょうか。

みんなの回答

  • _yasuo
  • ベストアンサー率41% (16/39)
回答No.3

exec("find ./hogehoge/hugahuga/ type -d",$aDir); ではどうですかね?

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

「どういう事でしょうか?」と聞き返すより前に, 実際に実行してみればわかると思うのだが.... 「grepを付けずに実行したら動作した」とは, 具体的にはどのようなコマンドを入力して「うまくいく」ことを確認したの? そして, それでうまくいったからといってなぜ「grep をつけて『当然』うまくいくと思った」の?

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

えぇと.... コマンドラインから ls -l | grep '^d' ./hogehoge/hugahuga/ と入力してもまともな結果になりそうもないことは当然認識できてますよね?

george723
質問者

補足

どういう事でしょうか? grepを付けずに実行したら動作したので当然うまく行くものだと認識していましたが。

関連するQ&A