検索コマンドと検索

見つける 

これにより、ユーザーはファイル システム内に指定したファイルが存在するかどうかをすばやく検索できます。この方法では、まずシステム内のすべてのファイルの名前とパスを含むデータベースを確立し、その後、実際にファイル システムに深く入ることなく、検索時にこのデータベースにクエリを実行するだけで済みます。一般的な配布ではデータベースの構築はcrontabで自動的に実行されます。

1. コマンド形式:

[パラメータを選択] [スタイル]を見つけます

2. コマンド機能:

データベースを検索するときに、locate コマンドを使用すると、ファイルをすばやく見つけることができます。データベースは、updateb プログラムによって更新されます。updatedb は、cron デーモンによって定期的に作成されます。locate コマンドは、データベースを検索するときに、ハードディスク全体のデータからデータを検索するよりも高速です, しかし、それはさらに悪いことですlocateで見つかったファイルが新しく作成されたか、名前を変更したばかりの場合、見つからない可能性がありますデフォルト値のうち、updatebは1日1回実行され、crontabを修正することで設定値を更新できます。(etc/crontab)

locate は、修飾されたファイルを検索するために使用されます。ファイル名とディレクトリ名を保存しているデータベースに移動して、テンプレート スタイルの条件を満たすファイルまたはディレクトリを検索します。特殊文字 (「*」や「?」など) は使用できます。テンプレート スタイルの指定に使用されます。指定されたテンプレートが kcpa*ner の場合、locate は、文字列が kcpa で始まり ner で終わるすべてのファイルまたはディレクトリを検索します。たとえば、名前が kcpartner の場合、ディレクトリ名が kcpa_ner の場合、ディレクトリに含まれるファイルまたはディレクトリ (サブディレクトリを含むすべてのファイル) がリストされます。

locate コマンドはファイルを検索する find の機能に似ていますが、locate は更新プログラムを使用して、まずハードディスク内のすべてのファイルとディレクトリ データのインデックス データベースを作成し、loacte の実行時にインデックスを直接検索します。インデックス データベースは通常、オペレーティング システムによって管理されますが、更新を直接発行して、システムにインデックス データベースを即座に変更させることもできます。

3. コマンドパラメータ:

-e は検索から除外します。

1の場合は-1.次にセーフモードを起動します。セーフ モードでは、ユーザーには表示できないファイルは表示されません。ファイルのアクセス許可データを取得するには、locate が実際のファイル システムにアクセスする必要があるため、速度が低下し始めます。

-f は特定のファイル システムを除外します。たとえば、データベースの proc ファイル システムにファイルを置く必要はありません。

-q Quiet モード。エラー メッセージは表示されません。

-n 最大 n 個の出力を表示します。

-r 正規表現を検索条件として使用します。

-o リポジトリの名前を指定します。

-d はデータベースへのパスを指定します

-h 補助情報を表示します

-V プログラムのバージョン情報を表示します

4. 使用例:

例 1: pwd に関連するすべてのファイルを検索する

注文:

locate pwd

出力:

peida-VirtualBox ~ # locate pwd

/bin/pwd

/etc/.pwd.lock

/sbin/unix_chkpwd

/usr/bin/pwdx

/usr/include/pwd.h

/usr/lib/python2.7/dist-packages/twisted/python/fakepwd.py

/usr/lib/python2.7/dist-packages/twisted/python/fakepwd.pyc

/usr/lib/python2.7/dist-packages/twisted/python/test/test_fakepwd.py

/usr/lib/python2.7/dist-packages/twisted/python/test/test_fakepwd.pyc

/usr/lib/syslinux/pwd.c32

/usr/share/help/C/empathy/irc-join-pwd.page

/usr/share/help/ca/empathy/irc-join-pwd.page

/usr/share/help/cs/empathy/irc-join-pwd.page

/usr/share/help/de/empathy/irc-join-pwd.page

/usr/share/help/el/empathy/irc-join-pwd.page

例 2: etc ディレクトリ内の sh で始まるすべてのファイルを検索します。 

注文:

locate /etc/sh

出力:

peida-VirtualBox ~ # locate /etc/sh

/etc/shadow

/etc/shadow-

/etc/shells

peida-VirtualBox ~ #

例 3: etc ディレクトリ内の m で始まるすべてのファイルを検索します。

注文:

locate /etc/m

出力:

peida-VirtualBox ~ # locate /etc/m

/etc/magic

/etc/magic.mime

/etc/mailcap

/etc/mailcap.order

/etc/manpath.config

/etc/mate-settings-daemon

探す

このコマンドは、ディレクトリ構造でファイルを検索し、指定されたアクションを実行します。Linux の find コマンドは非常に多くの検索条件を提供しており、機能が非常に強力です。find には強力な関数があるため、多くのオプションがあり、そのほとんどは時間をかけて理解する価値があります。システムにネットワーク ファイル システム (NFS) が含まれている場合でも、対応するアクセス許可を持っている限り、find コマンドはファイル システムでも有効です。非常にリソースを消費する find コマンドを実行する場合、大きなファイル システム (ここでは 30G バイトを超えるファイル システムを指します) の走査に時間がかかる可能性があるため、多くの人はそれをバックグラウンドで実行する傾向があります。

1. コマンド形式:

パス名を検索 -オプション [-print -exec -ok ...]

2. コマンド機能:

ファイルツリー内のファイルを検索し、対応する処理を行うために使用されます。 

3. コマンドパラメータ:

pathname: find コマンドが検索するディレクトリ パス。たとえば、現在のディレクトリを表すには . を使用し、システム ルート ディレクトリを表すには / を使用します。 

-print: find コマンドは、一致するファイルを標準出力に出力します。 

-exec: find コマンドは、一致するファイルに対してこのパラメータで指定されたシェル コマンドを実行します。対応するコマンドの形式は 'command' { } \; です。{ } と \; の間のスペースに注意してください。 

-ok: このパラメータで指定されたシェル コマンドがより安全なモードで実行されることを除いて、-exec と同じ機能があります。各コマンドを実行する前に、ユーザーが実行するかどうかを決定するためのプロンプトが表示されます。

4. コマンドオプション:

-name ファイル名でファイルを検索します。

-perm ファイルのアクセス許可によってファイルを検索します。

-prune このオプションを使用すると、find コマンドで現在指定されているディレクトリを検索しなくなります。- Depth オプションを同時に使用すると、-prune は find コマンドによって無視されます。

-user ファイルを所有者別に検索します。

-group ファイルが属するグループごとにファイルを検索します。

-mtime -n +n ファイル変更時刻に従ってファイルを検索します。-n はファイル変更時刻が今から n 日以内であることを意味し、+ n はファイル変更時刻が今から n 日前であることを意味します。find コマンドには -atime オプションと -ctime オプションもありますが、どちらも -m time オプションと互換性があります。

-nogroup 有効なグループがないファイル、つまり、ファイルが属するグループが /etc/groups に存在しないファイルを検索します。

-nouser 有効な所有者のないファイルを検索します。つまり、ファイルの所有者が /etc/passwd に存在しません。

-newer file1 ! file2 変更時刻が file1 より新しく、file2 より古いファイルを検索します。

-type は、次のような特定のタイプのファイルを検索します。

b - ブロックデバイスファイル。

d - ディレクトリ。

c - キャラクターデバイスファイル。

p - パイプライン ファイル。

l - シンボリックリンクファイル。

f - 通常のファイル。

-size n: [c] ファイル長が n ブロックのファイルを検索します。c はファイル長がバイト単位であることを示します。- Depth: ファイルを検索するときは、まず現在のディレクトリでファイルを検索し、次にそのサブディレクトリを検索します。

-fstype: 特定のタイプのファイル システムにあるファイルを検索します。これらのファイル システム タイプは通常、このシステムのファイル システムに関する情報が含まれる構成ファイル /etc/fstab にあります。

-mount: ファイルを検索するときにファイル システムのマウント ポイントを越えないでください。

-follow: find コマンドでシンボリック リンク ファイルが見つかった場合、そのリンクが指すファイルをたどります。

-cpio: 一致するファイルに対して cpio コマンドを使用して、ファイルをテープ デバイスにバックアップします。

また、以下の3つの違いは次のとおりです。

-amin n システム上で過去 N 分間にアクセスされたファイルを検索します

-atime n システム上で過去 n*24 時間以内にアクセスされたファイルを検索します

-cmin n 過去 N 分間にファイルステータスが変更されたシステム内のファイルを検索します

-ctime n システム内で過去 n*24 時間以内にファイル ステータスが変更されたファイルを検索します

-mmin n システムの最後の N 分間に変更されたファイル データを含むファイルを検索します

-mtime n システム内で過去 n*24 時間以内に変更されたファイル データを含むファイルを検索します

5. 使用例:

例 1: 指定された時間内に変更されたファイルを検索する 

注文:

           find -atime -2

出力:

[root@peidachang ~]# find -atime -2

.

./logs/monitor

./.bashrc

./.bash_profile

./.bash_history

例証します:

48 時間以内に変更されたファイルを検索する 

例 2: キーワードで検索する 

注文:

find . -name "*.log"

出力:

[root@localhost test]# find . -name "*.log" 

./log_link.log

./log2014.log

./test4/log3-2.log

./test4/log3-3.log

./test4/log3-1.log

./log2013.log

./log2012.log

./log.log

./test5/log5-2.log

./test5/log5-3.log

./test5/log.log

./test5/log5-1.log

./test5/test3/log3-2.log

./test5/test3/log3-3.log

./test5/test3/log3-1.log

./test3/log3-2.log

./test3/log3-3.log

./test3/log3-1.log

例証します:

現在のディレクトリで .log で終わるファイルを検索します。「.」はカレントディレクトリを表します 

例 3: ディレクトリまたはファイルの権限に従ってファイルを検索する

注文:

find /opt/soft/test/ -perm 777

出力:

[root@localhost test]# find /opt/soft/test/ -perm 777

/opt/soft/test/log_link.log

/opt/soft/test/test4

/opt/soft/test/test5/test3

/opt/soft/test/test3

例証します: 

/opt/soft/test/ ディレクトリでアクセス許可 777 のファイルを検索します。

例 4: タイプによる検索 

注文:

探す 。-type f -name "*.log"

出力:

[root@localhost test]# find . -type f -name "*.log"

./log2014.log

./test4/log3-2.log

./test4/log3-3.log

./test4/log3-1.log

./log2013.log

./log2012.log

./log.log

./test5/log5-2.log

./test5/log5-3.log

./test5/log.log

./test5/log5-1.log

./test5/test3/log3-2.log

./test5/test3/log3-3.log

./test5/test3/log3-1.log

./test3/log3-2.log

./test3/log3-3.log

./test3/log3-1.log

[root@localhost test]#

例証します:

現在のディレクトリで .log で終わる共通ファイルを検索します 

例 5: すべての現在のディレクトリを検索して並べ替える

注文:

探す 。-タイプd | 選別

出力:

[root@localhost テスト]# find 。-タイプd | 選別

.

./scf

./scf/bin

./scf/doc

./scf/lib

./scf/service

./scf/service/deploy

./scf/service/deploy/info

./scf/service/deploy/product

./test3

./test4

./test5

./test5/test3

[root@localhost テスト]#

例 6: サイズによるファイルの検索

注文:

探す 。-サイズ +1000c -プリント

出力:

[root@localhost テスト]# find 。-サイズ +1000c -プリント

.

./test4

./scf

./scf/lib

./scf/service

./scf/service/deploy

./scf/service/deploy/product

./scf/service/deploy/info

./scf/doc

./scf/bin

./log2012.log

./test5

./test5/test3

./test3

例証します:

現在のディレクトリで 1K を超えるファイルを検索する 

おすすめ

転載: blog.csdn.net/a1058926697/article/details/131174405