2010年12月15日水曜日

grep, find, locate

grepであるディレクトリの下のすべてのファイルに対して、文字列を検索する
下記のコマンドで、カレントディレクトリ以下のすべてのファイルに、「documentroot」という文字列(大文字小文字関係なく)を含むファイルを出力する。

$ grep -ri documentroot .

-r はサブフォルダを含め、すべてを検索
-i は大文字小文字関係なく


下記のコマンドで、カレントディレクトリ以下のすべてのファイル名に「log」が含まれないファイルに、ファイルの中に「172.17.0.190」を含むファイルを出力する。

$ grep -r --exclude='*log*' 172.17.0.190 .



また、ひかかったファイル名(パスも含む)のみを表示するには

$ grep -lr "ABC DEF" .



find

$ find / -name abc.txt //全部探す
$ find . -name abc.txt //カレントディレクトリ以下を探す
$ find ~ -name '*.xbm' //ホームディレクトリ以下の拡張しはxbmのすべてのファイル


A cool thing with find is tracking down orphaned files, after you've booted a
user off the system. You need to locate all the files that belonged to that
user. Oops, their account is long gone, so you can't search by login name. No
problem, search on their UID:

# find / -uid 1005

If you're searching system directories as a lowly unprivileged user, you'll
generate bales of error messages. These are like, so depressing, so they must
be suppressed, or redirected into the bitbucket, hahaha:

# find / -uid 1005 2>/dev/null



最後はlocate

$ updatedb
$ locate filename
$ locate -i filename //大文字小文字区別

0 件のコメント:

コメントを投稿