SEワンタンの独学備忘録

IT関連の独学した内容や資格試験に対する取り組みの備忘録

【LPIC101】 ファイル検索コマンド LPICで学ぶLinux23


最後の方はかなり急ぎ足になってしまいましたが、LPIC101については最終章
まったりやっていたらかなり時間がかかってしまいましたが、試験を重視した場合には比較的短期間で駆け抜けてしまった方が楽だと思います。

今回はファイルの検索コマンドについて。
似たようなコマンドや実践ではあまり使わないオプションがあったりと覚えるボリュームが比較的多い気もしますが、実践的にも使えることが多いコマンドでもあります。

find コマンド

findコマンドは特定のファイルやディレクトリを検索するもっとも基本的なコマンドの一つです。
検索コマンドとして使用するには基本的にオプションを付与する必要があります。

オプション

オプション 内容
-name ファイル名で検索
-atime 最終アクセス時刻で検索
-mtime 最終更新時刻で検索
-perm アクセス権で検索
-size ファイルサイズで検索
-type ファイルタイプ(f,l,d)で検索
-user ファイル所有者で検索

アクション

アクション 内容
-print 検索結果を改行区切りで表示(省略可)
-print0 検索結果をnull文字区切りで表示
-exec 検索結果に対してコマンドを実行する


■ファイル名で検索する
あまり詳しくない人でも使う機会があるでしょう。
普通に使用する場合には完全一致検索を行う。部分一致で検索したい場合などには正規表現を使用する。

[wantan@localhost work]$ find ./ -name test1.txt
./test1.txt
[wantan@localhost work]$ find ./ -name "test*"
./test.txt
./test
./test1.txt

■8日以内に更新されたファイルを検索する

[wantan@localhost work]$ find ./ -mtime -8
./
./links
./links/original.txt
./links/slink.txt
./links/slink2.txt
./links/slink3.txt

■所有者で検索する

[wantan@localhost work]$ find ./ -user root
./default.txt

■ディレクトリのみ検索
実際にはファイル名検索などと合わせて検索することが多いと思います。
その他にもファイル(f)やシンボリックリンク(l)で検索できる。

[wantan@localhost work]$ find ./ -type d
./
./test
./default
./umdir
./links

locateコマンド

locateコマンドは作成されたデータベースに基づいてファイル検索を行います。
その特徴上、findコマンドに比較して高速に動作するが、シンプルなファイル名検索しかできない、システムの最新状態で検索する保証がない。

コマンド自体にはいくつかのオプションもありますが、LPIC101ではそこまで重視されないようです。

[wantan@localhost tmp]$ locate test.txt
/home/wantan/lpic/.test.txt.swp
/home/wantan/lpic/file/testd/ddtest.txt
/home/wantan/lpic/work/test.txt
/home/wantan/work/test.txt
/home/wantan/work/test.txt2
/home/wantan/work/test.txt3
/home/wantan/work/karid/test.txt
[wantan@localhost ~]$ locate "*.tar"
/home/wantan/lpic/test.tar
/home/wantan/lpic/file/test.tar
updateコマンド

前述の通り、locateコマンドの検索はデータベースを元に行うため、最新の状態で検索を行うためにはデータベースの情報を更新する必要があります。
その際に使用するのがupdatedbコマンドです。

[root@localhost wantan]# updatedb

コマンド検索

ここのコマンドはこれまでの検索コマンドとは少し毛色が違い、コマンド自体の検索を行います。

whichコマンド

whichコマンドは、コマンドの絶対パスを表示します。
コマンドとしての結果表示はそれだけですが、特徴として環境変数PATHに基づき検索を行うため、PATHに登録していないコマンドは表示することができません。

[wantan@localhost ~]$ which cat
/usr/bin/cat
whereisコマンド

whereisコマンドについてもコマンドの絶対パスを表示します。
またパスだけではなく、そのコマンドのマニュアルなども表示することができます。

[wantan@localhost ~]$ whereis cat
cat: /usr/bin/cat /usr/share/man/man1/cat.1.gz

whichコマンドとwhereisコマンドは必ず比較してセットで覚えること。

typeコマンド

typeコマンドは、そのコマンドが実行ファイルなのか、シェル組み込みなのかなどのコマンドのタイプを表示します。

[wantan@localhost ~]$ type cat
cat は /usr/bin/cat です
[wantan@localhost ~]$ type echo
echo はシェル組み込み関数です
[wantan@localhost ~]$ type ll
ll は `ls -l --color=auto' のエイリアスです

ーーーーーーーーーーーーーーーー

終わり。試験日決めて受験してきます。
LPIC102の受験はしばらく先になりそう。。。

・前回(第二十二回)
www.wantanblog.com