Windows system >> Windowsの知識 >  >> Linuxシステムチュートリアル >> Linuxチュートリアル >> LinuxのFindコマンドの習得ガイド

LinuxのFindコマンドの習得ガイド

  

LinuxのFindコマンドは、すべてのLinuxコマンドの中で最も便利で混乱を招くものです。その構文は他のLinuxコマンドの標準的な構文とは異なるので難しいです。ただし、ファイル名、ファイルの種類、ユーザー、さらにはタイムスタンプでファイルを検索できるため、強力です。 findコマンドを使用すると、これらのプロパティを任意に組み合わせたファイルだけでなく、見つかったファイルも見つけることができます。

この記事の目的は、findコマンドの目的と可能性を概説することによって、コマンドの習得と使用を簡単にすることです。同時に、findコマンドの最も強力だが混乱を招く側面についての基本的なガイドとリファレンスも提供します。

[注:この記事で使用されているfindのバージョンはGNUバージョンなので、詳細が他のバージョンのfindと異なる場合があります。 ]

基本フォーマット

始める前に、findコマンドの基本構造を見てみましょう。find start_directoryテストオプションcriteria_to_matchaction_to_perform_on_results

次のコマンドでは、findは現在の位置から開始します。ディレクトリ内で拡張子 "java"を持つファイルを探します('。'で示されます)。find。-name" *。java"

以下は、コマンドで見つかったコマンドのサムネイルです。チェックリスト:-name" *。java" /REGEXPvalidate /src /oracle /otnsamples /plsql /ConnectionManager.java /REGEXPvalidate /src /oracle /otnsamples /plsql /DBManager.java ..

[注:この記事から切り取ってfindコマンドを実行する場合は、正しい結果を得るために二重引用符('')を独自のキーボードに置き換える必要があるかもしれません。 ]

次のコマンドでも同じ操作ができます。どちらの場合も、ワイルドカードをエスケープしてfindコマンドに渡され、シェルによって解釈されないようにする必要があります。したがって、検索文字列を引用符で囲むか、バックスラッシュを先頭に付けてください:find。-name /*.java

findのすべてのパラメータはオプションですが、検索を開始する場所を指定しなかったため、検索はデフォルトで現在のディレクトリから開始されます。テスト接続、オプション、または一致する値を指定しないと、結果は不完全になるか区別できなくなります。次の3つのfindコマンドを実行すると、現在のディレクトリとすべてのサブディレクトリにあるすべてのファイル(隠しファイルを含む)の完全なリストが同じ結果になります。find find .find。-print

-laオプションを指定したlsコマンド。上記のコマンドの出力に(おそらくバックアップのために)フルパス名を含める場合は、ホームディレクトリへのフルパスを指定する必要があります。find /home /bluher -name /*.java/home/bluher/plsql/REGEXPvalidate/Src /oracle /otnsamples /plsql /ConnectionManager.java /home /bluher /plsql /REGEX検証/src /oracle /otnsamples /plsql /DBManager.java /...

検索文字列でも指定できます。複数の開始ディレクトリ適切な特権を持つユーザーとして実行している場合、次のコマンドは/usr、/home /tmpディレクトリー内のすべてのjarファイルを検索します。find /usr /home /tmp -name" *。jar>しかし、

適切な権限がない場合は、多数のシステムディレクトリを参照し始めるとエラーメッセージが表示されます。次に例を示します。find:/tmp /orbit-root:アクセス許可が拒否されました

次のように検索文字列を追加すると、混乱した出力を避けることができます。find /usr /home /tmp -name " *。jar" 2> /dev /null

これにより、すべてのエラーメッセージが空のファイルに送信されるため、出力がきれいになります。

デフォルトでは、findは大文字と小文字を区別します。大文字と小文字を区別しないで検索するには、-inameテストを-nameテストに置き換えます。ダウンロードの検索-iname" *。gif" downloads /.xvpics /Calendar05_enlarged.gifdownloads /lcmgcfexsmall.GIF

ファイル名の他に、種類別にファイルを検索することもできます。たとえば、次のコマンドを使用してディレクトリ内のすべてのサブディレクトリを見つけることができます。find。-type d

次のコマンドを使用して、/usrディレクトリ内のすべてのシンボリックリンクを見つけることができます。

これは3,000以上のリンクをリストするかもしれません。 root権限で実行されている次のコマンドは、/usrディレクトリ内のリンクとそれが指すファイルを一覧表示します。#find /usr /bin -type l -name" z *" -exec ls -l {} /; lrwxrwxrwx 1ルートルート12 12月8 12月23:17 /usr /bin /zsh - > /bin /zshlrwxrwxrwx 1ルートルート5 12月12 12 12:17 /usr /bin /zless - > zmorelrwxrwxrwx 1ルートルート9 12月12日23:17 /usr /bin /zcat - > /bin /zcatfind /usr /bin -type l -name" z *" -ls

しかし、2番目に短いコマンドが表示されます。その他のファイル、ディレクトリ、およびiノード情報:この記事の残りの部分では、-execおよび-ls操作の使用方法について説明します。

その他の検索タイプには、次のものがあります。

• b> block(cache)special• c— character(アンキャッシュ)special• p— named pipe( FIFO)< s—>ソケット

findコマンドの開始点としてルートを使用すると、システムが大幅に遅くなる可能性があります。このようなコマンドを実行する必要がある場合は、ピーク時間外または夜間に実行できます。次の構文を使用して、出力をファイルにリダイレクトできます。find /-print> masterfilelist.out

誤ってfindコマンドを入力し、不要な出力が大量に生成された場合は、単にCTRL-Cを押してください。コマンドを中断します。これにより、最後に実行されたコマンドが停止します。

複数のファイルシステムがある企業ネットワークでは、findで見つかったファイルを制限することも特に便利な方法です。システムの負荷を軽減するために、できるだけ多くのオプションとテストを使用してください。この目的に最も便利な2つのオプションは、-xdevと-mountです。検索結果がMS-DOS、CD-ROM、AFSなどの他のファイルシステム上のディレクトリに移動するのを防ぐことで検索を短縮します。これは検索をホームディレクトリと同じ種類のファイルシステムに制限します。

mountコマンドを実行すると、デュアルブートシステムのユーザーはこれらのオプションを使用できます。 Windows
パーティションが含まれていると仮定すると、次のようなコマンドを使用してインストールできます。mount -t vfat /dev /sda1 /mnt /msdos

実際に使用するコマンドはシステム設定によって異なります。 。パーティションがインストールされていることを確認するには、dfを実行するか、次のコマンドを実行します。find /mnt /msdos -name" *。txt" 2> /dev /null

MS Windowsパーティションが表示されます。たくさんのファイル次のコマンドを-mountまたは-xdevオプションを付けて実行します。find /-name" *。txt" -mount 2> /dev /null

Copyright © Windowsの知識 All Rights Reserved