Linuxには、ファイルを検索するコマンドとして、
findコマンドやgrepコマンドが用意されています。
これらのコマンドはLinuxシステム内からユーザが指定する条件
(ファイル名やファイルタイプなど)でファイル検索、
ファイル内文字列検索を行えますが、それ単体だとシステム全体に
対してファイル内文字列検索するには不便です。
そこで今回は、Windowsでいう、「ファイルコンテンツの検索」を
Linuxで行う方法を紹介します。
Linuxでファイル内文字列検索をするには、
次のコマンドを実行します。
----------------------------------------------------------------------
find 検索したいディレクトリ -type f -print | xargs grep 検索文字列
----------------------------------------------------------------------
例えば、/home/pakiraディレクトリ内で「pakira」という文字列が
記載されてるファイルを検索したい場合には次のように実行します。
----------------------------------------------------------------------
$ find /home/pakira -type f -print | xargs grep pakira
/home/pakira/.gtkrc-1.2-gnome2:include "/home/pakira/.gtkrc.mine"
/home/pakira/.bash_history:cd /home/pakira/work/
----------------------------------------------------------------------
結果として検索文字列を含むファイル名と検索文字列の箇所が同時に表示されます。
また、システム全体をファイル内文字列検索できるので、
下記のようにサーバーのIPアドレスが記述されているファイルを
検索する事も可能です。
----------------------------------------------------------------------
$ su - ←「su -」でrootになる
パスワード: ←rootパスワードを入力(表示されません)
# find /etc -type f -print | xargs grep 192.168.1.36
/etc/sysconfig/network-scripts/ifcfg-eth0:IPADDR=192.168.1.36
----------------------------------------------------------------------
ある文字列を含むファイルを検索したい場合に、このコマンドは
便利ですのでぜひこのまま覚えてください。
P.S
Linuxでファイルコンテンツの検索をするのもっと高い技術を身につけたいならこちら
<<関連記事>>
・MIMEでエンコードされたテキストを読めるように変換する
・viエディタで文字をコピーする
・ハードディスクの使用状況を調べるには
・tar.bz2ファイルを解凍して展開するには
・tar.gz形式のファイルを解凍、展開するには