Linux でディレクトリを効率的に見つけるためのいくつかのトリックを教えます

1 はじめに

ディレクトリの検索は、Linux オペレーティング システムの一般的なタスクです。システム管理者でも一般ユーザーでも、ファイル システムの移動、データのバックアップ、ファイルの削除などのさまざまな操作を実行するために、特定のディレクトリを見つけることが必要になる場合があります。Linux には、ファイル システム内のターゲット ディレクトリをすばやく見つけるのに役立つさまざまなコマンドとツールが用意されています。この記事では、Linux でディレクトリを効率的に検索するためによく使用されるいくつかの方法とコマンドを紹介します。

2.findコマンドを使用します

findコマンドは、Linux システムの強力な検索ツールです。指定されたディレクトリを再帰的に走査し、さまざまな基準に基づいてファイルとディレクトリを検索できます。

2.1 基本的な構文

findコマンドの基本的な構文は次のとおりです。

find [path] [expression]

このうち、path検索開始ディレクトリのパスです。省略した場合、デフォルトではカレントディレクトリから検索が開始されます。expressionファイル名、ファイルタイプ、サイズ、権限などの検索基準を指定するためのオプションです。

2.2 例

2.2.1 指定したディレクトリの下にあるすべてのサブディレクトリを検索する

指定したディレクトリの下にあるすべてのサブディレクトリを検索するには、次のコマンドを使用できます。

find /path/to/directory -type d

このコマンドは、/path/to/directoryディレクトリの下にあるすべてのサブディレクトリを再帰的に検索し、そのパスを出力します。

例えば:

find /tmp -type d

出力:

2.2.2 ディレクトリ名に特定の文字列が含まれるディレクトリを検索する

ディレクトリ名に特定の文字列が含まれるディレクトリのみを検索したい場合は、次の-nameオプションを使用できます。

find /path/to/directory -type d -name "keyword"

keyword検索したい文字列に置き換えます。

例えば:

find /tmp -type d -name "localhost"

出力:

2.2.3 指定したユーザーのディレクトリを検索する

特定のユーザーのディレクトリを検索するには、次の-userオプションを使用できます。

find /path/to/directory -type d -user username

username対象ユーザーのユーザー名に置き換えます。

例えば:

find /tmp -type d -user root

出力:

2.2.4 特定の日付範囲内に変更されたディレクトリを検索する

特定の日付範囲内に変更されたディレクトリを検索することもできます。たとえば、過去 7 日間に変更されたディレクトリを検索するには、次のようにします。

find /path/to/directory -type d -mtime -7

このコマンドは、過去 7 日間に変更されたディレクトリを返します。

例えば:

find /tmp -type d -mtime -7

出力:

2.2.5 検索結果をファイルに出力する

検索結果を端末に表示するのではなくファイルに出力したい場合は、リダイレクト演算子を使用できます>

find /path/to/directory -type d -name "keyword" > result.txt

これにより、検索結果がresult.txtというファイルに保存されます。

例えば:

find /tmp -type d -name "localhost" > result.txt

more result.txt

2.3 その他のオプション

findコマンドは、ファイル サイズによる検索、アクセス許可による検索など、他の多くのオプションもサポートしています。find( コマンドを使用して) コマンドのマニュアル ページを参照するman findと、その他のオプションと例を確認できます。

3.locateコマンドを使用します。

locateコマンドは、Linux でディレクトリとファイルを検索するもう 1 つの簡単な方法です。コマンドとは異なりfindlocateコマンドはデータベースを使用して検索プロセスを高速化します。

一般的なサーバーにはこのコマンドがない可能性があるため、インストールする必要があります。

apt install mlocate

3.1 データベースの更新

コマンドを使用する前にlocate、データベースが最新であることを確認する必要があります。データベースは次のコマンドで更新できます。

sudo updatedb

このコマンドには管理者権限が必要であり、最新のファイル情報を含めるためにデータベースが再生成されます。

3.2 ディレクトリの検索

ディレクトリを検索するコマンドはファイルを検索するコマンドと同じですが、-type d検索結果をディレクトリに制限するオプションを使用するだけです。

locate -b '\keyword'

keyword検索したい文字列に置き換えます。

3.3 大文字と小文字を区別しない

デフォルトでは、locateコマンドは大文字と小文字が区別されます。大文字と小文字を区別せずに検索したい場合は、次の-iオプションを使用できます。

locate -i -b '\keyword'

3.4 その他のオプション

locateこのコマンドは、検索結果の数の制限、データベース ファイルの指定など、いくつかの追加オプションをサポートしています。locate( コマンドを使用して) コマンドのマニュアル ページを参照するman locateと、その他のオプションと例を確認できます。

4.findと をgrep組み合わせて使用​​します

場合によっては、検索結果をさらに特定のカテゴリにフィルタリングする必要がある場合があります。これは、findコマンドとコマンドを組み合わせて使用​​することで実現できます。grep

たとえば、次で終わる/path/to/directoryディレクトリの下にあるすべてのディレクトリを検索するとします.log

find /path/to/directory -type d | grep ".log$"

このコマンドは、まずfindこのコマンドを使用してすべてのディレクトリを検索し、次にその結果をgrepフィルタリングのためにコマンドに渡します。

5.treeコマンドを使用します。

ディレクトリとサブディレクトリをツリー構造で表示したい場合は、treeコマンドを使用できます。treeこのコマンドは、指定されたディレクトリとそのサブディレクトリの内容を再帰的に一覧表示します。

5.1 インストールtreeコマンド

一部の Linux ディストリビューションでは、treeこのコマンドがデフォルトでインストールされない場合があります。次のコマンドでインストールできます。

Ubuntu と Debian の場合:

sudo apt-get update
sudo apt-get install tree

CentOS および Fedora の場合:

sudo yum install tree

5.2treeコマンドの使用方法

treeコマンドの使用は非常に簡単です。検索するディレクトリ パスを指定するだけです。

tree /path/to/directory

treeこのコマンドは、指定されたディレクトリとそのサブディレクトリの内容をツリー構造で再帰的に表示します。

例えば:

tree /tmp

5.3treeコマンドオプション

treeこのコマンドは、必要に応じて出力結果を調整できるいくつかのオプションもサポートしています。よく使用されるオプションをいくつか示します。

  • -d: ファイルではなくディレクトリのみを表示します。
  • -L level: 表示レベルの数を制限します。たとえば、-L 22 レベルのディレクトリ構造のみを表示します。
  • -I pattern: 除外するディレクトリまたはファイルのパターンを指定します。たとえば、で終わる-I "*.log"すべてのファイルを除外します。.log
  • -f: 相対パスだけでなく完全なパスを表示します。

tree( コマンドを使用して) コマンドのマニュアル ページを参照するman treeと、その他のオプションと例を確認できます。

6.lsコマンドを使用します。

特殊な検索ツールに加えて、lsコマンドもディレクトリの検索に役立ちます。lsこのコマンドはディレクトリの内容を一覧表示するために使用され、さまざまなオプションとワイルドカードを組み合わせてディレクトリをフィルタリングできます。

6.1 ディレクトリの検索

lsディレクトリを検索するには、コマンドの-dオプションとワイルドカードを組み合わせて使用​​できます*/

ls -d /path/to/directory/*/

このコマンドは、/path/to/directory/ディレクトリの下にあるすべてのサブディレクトリを一覧表示します。

6.2 特定の名前のディレクトリを検索する

ディレクトリ名が特定の名前と完全に一致するディレクトリのみを検索したい場合は、ディレクトリ名を引数として直接使用できます。

ls -d /path/to/directory/directory_name

directory_nameターゲットディレクトリの名前に置き換えます。

6.3 特定の文字列を含むディレクトリを検索する

lsコマンドの*ワイルドカードを使用して、ディレクトリ名に特定の文字列が含まれるディレクトリを検索することもできます。

ls -d /path/to/directory/*keyword*

keyword検索したい文字列に置き換えます。

6.4 その他のオプション

lsこのコマンドは、ディレクトリの詳細の表示、変更時間による並べ替えなど、他のオプションもサポートしています。ls( コマンドを使用して) コマンドのマニュアル ページを参照するman lsと、その他のオプションと例を確認できます。

7. 結論

Linux でディレクトリを検索することは一般的かつ重要なタスクです。find、、、およびコマンドはlocateファイル システム内のターゲット ディレクトリをすばやく見つけるのに役立つ 4 つの一般的に使用されるツールです。これらのコマンドの使用に習熟すると、Linux システムでディレクトリとファイルをより効率的に管理し、さまざまな操作をより簡単に実行できるようになります。treels

おすすめ

転載: blog.csdn.net/weixin_43025343/article/details/131914847