質問: 指定したフォルダ内にある、多数のスクリプトファイルを1つのファイルにまとめる お世話になります。 当方、PHPフレームワークのCakePHPの勉強をしております。 CakePHP3の参考書を読み、さらに詳しくCakePHPを勉強しようと、 CakePHP本体のコードを印刷したいと思っております。 そこで質問なのですが、 このCakePHPの指定したフォルダ内にあるPHPファイルや、テンプレートファイル、テキストファイルなどを 一つのテキストファイル(PDFなどでもOK)に 出力する方法がないかご教授いただきたく思っております。 例えば、 CakePHPフォルダのConfigフォルダ内にあるスクリプトファイルを一つのファイルにまとめられるような、ソフトやWebアプリケーションがあればと思っています。 当方の環境は、ubuntu14.04です。 どうぞ、よろしくお願い致します。
回答: Ubuntu なら、コマンドでできます。 カレントディレクトリが対象のディレクトリだとして、/tmp/all.txt に全てのファイルを吐き出すとしたらこんな感じ。 ``` % find . -type f -print | xargs cat > /tmp/all.txt ``` 吐き出し先のファイルもカレントディレクトリにあると、それも吐き出す対象になっちゃうので、別のディレクトリにするのが吉。 /home/a-kuma3/php/ が対象のディレクトリだとして、カレントの all.txt に吐き出すなら、こう。 ``` % find /home/a-kuma3/php -type f -print | xargs cat > all.txt ``` (修正です) ~~ただファイルの内容だけをくっつけちゃうと、後で中を見たときに、どのファイルか分からなくなりそう。~~ ~~カレントディレクトリを対象に、ファイル名をつけて /tmp/all.txt に吐き出すとしたらこんな感じ。~~ ``` for f in `find . -type f -print`; do (printf "======\n$f\n"; cat $f) done > /tmp/all.txt ``` pr コマンドってのがあるのを思い出しました。 ファイル名付きでまとめるなら、こっちの方が良いかも。 ``` % find . -type f -print | xargs pr > /tmp/all.txt ```