Linuxのfindコマンドは、コマンドラインから直接ファイルを検索するときに便利です。 findコマンドには、問題のファイルまたはディレクトリを見つけるための権限、所有権、変更、サイズ、時刻、日付などの検索条件が与えられます。
findコマンドはデフォルトですべてのLinuxディストリビューションで使用できるため、使用するために特別なパッケージをインストールする必要はありません。その重要性から、findコマンドは、Linuxディストリビューションのコマンドラインナビゲーションについて詳しく知りたい場合に学習するために不可欠なコマンドです。
検索コマンドの例のいくつかを強調し、使用できるさまざまなオプションについて説明します。
構文
$ find location comparison-criteria search term
現在のディレクトリ内のファイルの一覧表示
フォルダ内のファイルを含むディレクトリ内のすべてのファイルを一覧表示するには、以下のコマンドを実行します。
$ find .
サンプル出力
指定したディレクトリ内のファイルを検索する
特定のディレクトリ内のすべてのファイルを検索する場合は、次のようにfindコマンドを使用します
$ find directory_name
たとえば、/ boot内のすべてのファイルを検索するには、コマンドを実行します
$ find /boot
サンプル出力
指定したディレクトリ内のファイル名を使用してファイルを検索する
ディレクトリ内のファイル名を使用して検索条件を指定する場合、構文は次のようになります
。$ find directory_name -name "file_name"
たとえば、/etcディレクトリでApache2ファイルを検索するには
を実行します。$ find /etc -name "apache2"
出力
指定したファイル拡張子を持つすべてのファイルを再帰的に検索します
特定のディレクトリで特定の拡張子を持つ特定のファイルを検索する場合、構文は次のようになります
。$ find directory_name -name "*.extension"
たとえば、/ etcディレクトリ内のすべての構成ファイル(.conf)を検索するには、
を実行します。$ find /etc -name "*.conf"
サンプル出力
検索の深さを制限する
ディレクトリでのファイル検索の深さを制限することを決定できます。たとえば、ファイル検索をディレクトリの最初のレベルに制限する場合、構文は次のようになります
$ find directory_name -maxdepth 1 -name "*.conf"
したがって、ファイル検索を / etcの第1レベルのディレクトリに制限する場合 .conf
のファイルの場合 拡張実行:
$ find /etc -maxdepth 1 -name "*.conf"
サンプル出力
上記の出力に見られるように、ファイル検索は / etcに制限されています ディレクトリレベル。より集中的な検索を実行し、 / etc内の他のディレクトリをさらに深く調べたい場合 ディレクトリ、 maxdepthを増やします 値。
たとえば、 .confでファイルを検索するには 3番目のディレクトリまでの拡張実行
$ find /etc -maxdepth 3 -name "*.conf"
サンプル出力
上記の出力からわかるように、検索は2番目と3番目のディレクトリまで行われます。
検索結果を反転する
また、findコマンドを使用して、指定された基準を満たさないファイルを検索することもできます。このモードは、検索パターンから既知のファイルを削除する場合に役立ちます。
これを行うには、-not -name
を使用します 示されている属性
$ find /etc -maxdepth 1 -not -name "*.conf"
サンプル出力
上記の出力は、.confを持たないすべてのファイルを出力します。 em> 拡張機能を使用します。
OR演算子を使用した検索の使用
-o
で表されるOR演算子を使用して、検索結果と検索結果を組み合わせることができます。 以下の例に示すフラグ
$ find /etc -maxdepth 3 -name "cron" -o -name "ssh"
サンプル出力
上記のコマンドは、 sshという名前のファイルを検索します またはcron
ファイルのみまたはディレクトリのみを検索する
ファイルのみを検索する場合は、- type f
を使用します 以下の例に示すような属性
$ find /etc -type f -name "ssh"
サンプル出力
ディレクトリのみを検索する場合は、- type d
を使用します 以下の例に示すような属性。
$ find /etc -type d -name "ssh"
サンプル出力
特定のユーザーが所有するファイルの検索
特定のディレクトリで特定のユーザーが所有するファイルを検索するには、次の構文を使用します。
$ find /path -user username
たとえば、ユーザー jamesが所有するファイルを検索するには /home
にあります ディレクトリは以下のコマンドを実行します
$ find /home -user james
サンプル出力
特定のファイル権限を持つファイルを検索する
特定のファイル権限を持つファイルを検索するには、以下の構文を使用します
$ find /directory_name -type f -perm value
たとえば、 / etcで権限755のファイルを検索するには ディレクトリ、実行:
$ find /etc -type f -perm 755
サンプル出力
特定のファイルサイズまたはファイル範囲のファイルを検索する
Linuxのfindコマンドを使用すると、ユーザーはファイルサイズに応じてファイルを検索することもできます。
Nサイズのファイルを検索
たとえば、10kbのファイルを検索するには、次のコマンドを実行します。
$ find /etc -type f -size 10k
サンプル出力
10kbを超えるファイルを検索するには
find /etc -type f -size +10k
サンプル出力
10kb未満のファイルを検索するには
find /etc -type f -size -10k
サンプル出力
概要
これは、Linuxのfindコマンドの例の概要です。すでに示したように、コマンドラインでファイルとディレクトリを検索するのは非常に簡単です。コマンドがどのように動作するかを知ることは、すべてのシステム管理者にとって不可欠なツールです。
上記の検索コマンドの例を自由に試して、どのように実行されたかをお知らせください。