このチュートリアルでは、Linuxでディレクトリを見つけるさまざまな方法について説明します。ご存知かもしれませんが、Linuxではすべてがディレクトリを含むファイルです。また、Linuxユーザーがコマンドライン内で行う一般的なことの1つは、ファイルまたはディレクトリの検索です。
検索、検索など、コマンドラインでファイルを検索するために使用されるいくつかの異なる手段とユーティリティがあります。 およびどちら 。ただし、最後のユーティリティ(これ )は、コマンドの検索にのみ使用されます。
このチュートリアルの範囲では、主にfindユーティリティに焦点を当てます。このユーティリティは、ライブLinuxファイルシステム上のファイルを検索し、locateと比較してより効率的で信頼性があります。 。
検索の欠点 updatedbによって作成された1つ以上のデータベースを読み取るということです 、ライブファイルシステムを検索しません。さらに、どこから検索するか(開始点)に関する柔軟性も提供されません。
以下は、locateを実行するための構文です。 コマンド:
# locate [option] [search-pattern]
検索の欠点を示すため 、pkg
という名前のディレクトリを検索していると仮定します。 現在の作業ディレクトリにあります。
--basename
または-b
検索を指示します ファイル(ディレクトリ)のベース名(正確には pkg )とのみ一致します )ただし、パス( / path / to / pkg )ではありません )。ここで\
グロブ文字であり、 pkgの暗黙的な置換を無効にします * pkg *による 。
$ locate --basename '\pkg'
上記のコマンド出力からわかるように、検索 ルートから検索します(/) ディレクトリ、それが同じ名前の他のディレクトリが一致する理由です。
したがって、この問題に対処するには、検索を使用します 以下の簡略化された構文に従うことによって:
$ find starting-point options [expression]
いくつかの例を見てみましょう。
同じディレクトリを検索するには(pkg)
上記の現在の作業ディレクトリ内で、次のコマンドを実行します。ここで、-name
flagは、この場合はディレクトリのベース名である式を読み取ります。
$ find . -name "pkg"
「許可が拒否されました」が発生した場合 」エラーの場合は、次のようにsudoコマンドを使用します:
$ sudo find . -name "pkg"
-type
を使用すると、findがディレクトリ以外の他のファイルタイプを検索しないようにすることができます。 ファイルのタイプを指定するフラグ(d
の下のコマンドで) 次のようにディレクトリを意味します:
$ sudo find . -type d -name "pkg"
さらに、ディレクトリを長いリスト形式でリストする場合は、アクションスイッチ-ls
を使用します。 :
$ sudo find . -type d -name "pkg" -ls
次に、オプション-iname
大文字と小文字を区別しない検索が有効になります:
$ sudo find . -type d -iname "pkg" $ sudo find . -type d -iname "PKG"
より興味深く高度な使用法情報を見つけるには、 findのマニュアルページを読んでください。 および検索 。
$ man find $ man locate
最後に、findコマンドは、 Locate と比較して、Linuxシステム内のファイル(またはディレクトリ)を検索する場合に、より信頼性が高く効率的です。 コマンド。
以前と同じように、下のコメントセクションからフィードバックや質問を送信することを忘れないでください。最後に、常にテクミントに接続したままにします 。