最後の方はかなり急ぎ足になってしまいましたが、LPIC101については最終章。
まったりやっていたらかなり時間がかかってしまいましたが、試験を重視した場合には比較的短期間で駆け抜けてしまった方が楽だと思います。
今回はファイルの検索コマンドについて。
似たようなコマンドや実践ではあまり使わないオプションがあったりと覚えるボリュームが比較的多い気もしますが、実践的にも使えることが多いコマンドでもあります。
find コマンド
findコマンドは特定のファイルやディレクトリを検索するもっとも基本的なコマンドの一つです。
検索コマンドとして使用するには基本的にオプションを付与する必要があります。
オプション
オプション | 内容 |
---|---|
-name | ファイル名で検索 |
-atime | 最終アクセス時刻で検索 |
-mtime | 最終更新時刻で検索 |
-perm | アクセス権で検索 |
-size | ファイルサイズで検索 |
-type | ファイルタイプ(f,l,d)で検索 |
-user | ファイル所有者で検索 |
アクション
アクション | 内容 |
---|---|
検索結果を改行区切りで表示(省略可) | |
-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