2012-02-19 23 views
9

サブディレクトリに再帰的に見つけるbashのループ私は次のようなbashスクリプトを持って

/public_html/index.php 
/public_html/forums/status.php 
/public_html/really/deep/file/in/many/sub/dirs/here.php 

FILES=public_html/*.phpを変更するにはどうすればよいですか?

はまた、私はそこに少なくとも1つのファイルであるか、そうでなければ

Processing *.php file... 

答えて

26
FILES=$(find public_html -type f -name '*.php') 

重要:*のシェル拡張を防ぐために*.php周りの単一引用符に注意してください。

+0

と書くことができます。これはpwdからの結果だけを返します。 – qwertymk

+0

私はそうは思わない。 (GNUのfindを使っていますか?) 'mkdir -p public_html/{a、b、c}; touch public_html/{a、b、c}/{1,2,3} .php; find public_html -type f -name * .php'は9つのファイルすべてを返します。 – sgibb

+0

これは 'FILES =" $(find public_html -type f -name '* .php') "' – qwertymk

1
FILES=`find public_html -type d` 

$ FILESは今のpublic_html内のすべての単一のディレクトリのリストになります印刷していることを確認するためにチェックする必要があります。

+1

あなたは疑問を誤解していると思います。私はディレクトリ内でファイルを取得する必要があり、ディレクトリ自体ではない – qwertymk

+1

public_htmlのサブディレクトリにすべてのPHPファイルが必要ですか?その場合、 'find public_html -name * .php' – Jarryd

関連する問題