このコマンドを使用して、特定の文字列を含むディレクトリ内のすべてのファイルを検索します。
grep -lir "string" path_to directory
例
grep -lir "users" /var/www/mysite
このコマンドは、文字列 'users'を含む指定されたディレクトリ内のすべてのファイルを表示します。ただし、変更日を降順に並べ替えたいと思います。最新から最古へ。
何か助けはありますか?
最初にZ
オプションを使用し、次に-0オプションを指定したxargsがファイル名をキャッチして統計し、タイミング情報を並べ替えて削除し、並べ替えられた最新の最初のリストを表示します。
grep -Zlir users /var/www/mysite | xargs -0 -r stat --format='%Y+%n' | sort -t+ -k 1,1nr | cut -d+ -f2-
zsh
の場合:
print -rl ./**/*(.De_'grep -qi "string" $REPLY'_om)
これは glob qualifiers を使用して、string
を含む通常のファイル(.
)のみを選択します。 (つまり、式e_'grep -qi "string" $REPLY'_
がtrue
を返すグロブの結果)そしてom
を介して、最終結果をmtime
(最新のものから)でソートします。隠しファイルを検索したくない場合は、D
を削除してください。