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
考えてみてください。画像のサイズをもっと小さいサイズに変更したい場合はどうすればよいですか。もちろん、私は間違いなくグラフィック編集ソフトウェアを起動し、それから画像ファイルを開き、メニューから関連
コンピューターストアのニュース:Steamはホストする準備ができていることを覚えていますか?今、新しいニュースがあります:このハードウェアはLinuxを使うでしょう。以前の「ビッグピクチャーモード」(
をインストールします。最初に、システム環境オペレーティングシステム:RedHat Enterprise Linuxサーバー5.4(rhel 5.4)次に、JDK1をインストールします。最新のJava
liunxシステムが起動され、私は大まかに言ったが、具体的なプロセスは完全に理解されていない、今日インターネット上で、そしてマップに従って、具体的には以下のフローチャートを見つける、詳細な説明がありま