Linuxサーバーでは、現在のディレクトリとすべてのサブディレクトリで、特定のファイル拡張子を持つすべてのファイルを見つける必要があります。
以前は、常に次のコマンドを使用しています。
find . -type f | grep -i *.php
ただし、たとえば。myhiddenphpfile.phpのように、隠しファイルは見つかりません。以下は非表示のphpファイルを検出しますが、非表示でないファイルは検出しません。
find . -type f | grep -i \.*.php
同じコマンドで非表示のphpファイルと非表示でないphpファイルの両方を見つけるにはどうすればよいですか?
...
find . -type f -name '*.php'
Inameを使用することをお勧めします(大文字と小文字は区別されません)。
この検索コマンドを使用して、隠しファイルを検索します。
find /path -type f -iname ".*" -ls
抽出元: http://www.sysadmit.com/2016/03/linux-ver-archivos-ocultos.html
問題は検索ではなく、grepです(find . -type f
だけを試して、私の意味を確認してください)。
*
を引用符で囲まない場合、シェルはそれを展開します-grepがコマンドライン引数を見る前に;シェルはデフォルトでは隠しファイルを検出しないため、問題が発生します。
onlyが隠しファイルを見つけるのは、シェルが*
を既に展開しているため、grepがその1つのファイルのみと一致しているためです。