Linux 検索でディレクトリを除外する

Linux Jian Suodedirekutoriwo Chu Waisuru



Linux を使用している場合、マシン内のファイルをすばやく見つけたい場合があります。 Linux には、特定のファイルを検索できる「find」コマンドなど、さまざまな検索コマンドが用意されています。唯一の欠点は、このコマンドが多数の乱雑なファイルやファイルを出力することです。ただし、ターゲット ファイルが特定のディレクトリにないことが確実な場合は、「find」コマンドでそのファイルを除外して、検索出力を減らすことができます。

この記事では、「find」コマンドとは何か、またその仕組みについて説明します。さらに、Linux でディレクトリを除外しながらコマンドを使用する方法を見ていきます。読む!

検索コマンドの使用

Linux の「find」コマンドは、ファイルとディレクトリを見つけるのに役立ち、手動で見つける必要がなくなります。次の構文を使用します。







find <ファイルへのパス> <式> <オプション> <ターゲット>

以下は、ホーム ディレクトリで「linuxhint.c」という名前のファイルを検索する例です。





出力には、ターゲット ファイルを見つけるための絶対パスが示されます。パターンを使用してファイルを検索するとします。たとえば、次の場所にあるテキスト ファイルを検索したいとします。 書類/ Linux システム上で。次のようにコマンドを指定します。





「find」コマンドがテキスト ファイルを含むすべてのディレクトリを出力する方法に注目してください。これは、Linux の「find」コマンドを使用する簡単な例です。



Linux Find でディレクトリを除外する方法

「find」コマンドを実行すると、指定したディレクトリとサブディレクトリが検索されます。検索からサブディレクトリを除外するには、次の 3 つの方法のいずれかを使用します。

1. プルーンオプション

デモンストレーションでは、 Linuxhint/ 。次の図に示すように、3 つのサブディレクトリがあることがわかります。

-print と一緒に使用すると、「prune」オプションは、「find」コマンドを使用するときに指定されたサブディレクトリを除外するのに役立ちます。前の画像では、「find」コマンドを使用して、Linuxhint ディレクトリへのパスを指定できます。次に、検索出力から dir2 を除外するように指定します。

次のようにコマンドを実行します。

find /home/kyle/Desktop/linuxhint/ -path /home/kyle/Desktop/linuxhint/dir2 -prune -o -print

dir2 が出力のどこにも表示されていないことに注目してください。これは、dir2 を除外できたことを示しています。

以下に示すように、同じコマンドを短縮バージョンで実行することもできます。

多数のディレクトリを除外することもできます。そのために、-o オプションを使用します。次の例では、dir1 と dir3 を除外して、dir2 のみを残します。検索したいファイルまたはフォルダーが他のディレクトリにないことが確実な場合は、このオプションを使用すると検索出力が減ります。

2.「しない」オプションを使用する

検索クエリでは、「not」を追加して除外するディレクトリを指定できます。その実装は、prune オプションよりも簡単です。

使用する構文は次のとおりです。

find [パス] -type f -not -path ‘*/除外するディレクトリ/*’

prune オプションを使用して実装した「find」検索出力から dir1 を除外したいとします。次のようにコマンドを実行します。

探す 。 -type f -not -path ‘*/dir2/*’

prune オプションを使用した場合と同じ出力が得られます。指定されたディレクトリは除外されます。残りのサブディレクトリのみが検索出力に表示されます。

3.「!」経由オプション

Linux の「find」コマンドでディレクトリを除外する最後の方法は、「!」を追加することです。オペレーター。これは「not」演算子と同様に機能し、構文はほぼ同じです。

find [パス] -type f ! -path ‘*/除外するディレクトリ/*’

前の例を繰り返して、「!」を使用して dir2 を除外するとします。オペレーター。それでも同じ出力が得られます。使用するコマンドのセクションのみが変更されています。

これらは、Linux の「find」コマンドでディレクトリを除外する 3 つの方法です。

結論

Linux の「find」コマンドは、ファイルやフォルダーをすばやく見つけるのに便利です。検索コマンドでディレクトリを除外して検索出力を減らすことができるため、さらに改善されます。ディレクトリを除外するには、「prune」、「not」、または「!」を使用できます。オプション。この投稿では、ディレクトリを除外する指定された例で 3 つのオプションがどのように機能するかについて説明しました。やってみて!