ホームページ > システムチュートリアル > Linux > コマンドラインからLinuxでディレクトリを見つける方法

コマンドラインからLinuxでディレクトリを見つける方法

Lisa Kudrow
リリース: 2025-03-18 09:07:11
オリジナル
925 人が閲覧しました

コマンドラインからLinuxでディレクトリを見つける方法

Linuxシステムにフォルダーが見つかりませんか?心配しないで! Linuxは、行方不明のディレクトリを見つけるための強力なコマンドラインツールを提供します。最も一般的なツールは、さまざまな基準に基づいてディレクトリを検索できるfindコマンドです。このガイドでは、Linux Systemsでディレクトリを見つけるためのいくつかの方法を紹介します。

まず、名前でディレクトリを検索する方法を示します。次に、最近修正されたディレクトリと過去のn日に変更されたディレクトリを見つける方法を示します。また、古いディレクトリを識別する方法も学びます。これは、数日前に変更されたものです。

次に、 maxdepthおよびmindepthオプションを使用して、指定された深度範囲内でディレクトリを検索する方法について説明します。特定の数のファイルを含むディレクトリとディレクトリの権限に基づいてディレクトリを見つける方法を学びます。

最後に、ファイルシステムの未使用または不要な部分を識別するのに非常に役立つ空のディレクトリの検索方法について説明します。

ガイド全体を通して、Linuxでディレクトリを使用する際にfindコマンドを利用するのに役立つ実用的な例を提供します。

目次

  • 現在のディレクトリのディレクトリを検索します
  • -inameを使用してケースを無視します
  • ディレクトリとファイルを検索します
  • 最近変更されたディレクトリを見つけます
  • 過去のn日に変更されたディレクトリを見つけてください
  • 古いディレクトリを特定します
  • 指定された範囲内のディレクトリを検索します
  • ディレクトリアクセス許可に基づいてディレクトリを見つけます
  • 特定の数のファイルを含むディレクトリを見つけます
  • 空のディレクトリを検索します
  • 要約します

ディレクトリ名で検索します

ディレクトリの名前と検索の開始場所がわかっている場合は、次のコマンドを使用します。

 find/path/to/search -Type d -Name "directory_name"
ログイン後にコピー

/path/to/search実際のパスで、ターゲットディレクトリに"directory_name"置き換えます。

例:

 $ find〜/ -Type D -Name "Documents"
ログイン後にコピー

このコマンドは、ユーザーのホームディレクトリ(〜/)から「ドキュメント」という名前のディレクトリの検索を開始します。

これがコマンドの内訳です:

  1. find ~/ :ユーザーのホームディレクトリ(〜/)から検索を開始します。
  2. -type d :通常のファイルではなく、ディレクトリ(-Type D)の検索をfindてください。
  3. -name "Documents" :このオプションは、「ドキュメント」という名前のディレクトリを見つけるようにfindに指示します。 「ドキュメント」の両側にある引用は、「ドキュメント」という言葉を含むディレクトリだけでなく、検索が正確な名前を探していることを確認します。

したがって、このコマンドは、「ドキュメント」という名前のディレクトリのユーザーのホームディレクトリとそのすべてのサブディレクトリを検索します。ディレクトリが見つかった場合、それらのディレクトリへのフルパスを印刷します。

現在のディレクトリのディレクトリを検索します

Home Directory(〜/)の代わりに現在のディレクトリから検索を開始する場合は、次のようにコマンドの一部を省略できます。

 $ find d -name "documents"
ログイン後にコピー

各オプションの機能の内訳は次のとおりです。

  1. find . .
  2. -type d :ディレクトリを検索するように送っfindください。
  3. -name "Documents" :このオプションは、「ドキュメント」という名前のディレクトリを見つけるようにfindに指示します。

このコマンドは、現在のディレクトリとそのすべてのサブディレクトリを検索し、「ドキュメント」という名前のディレクトリを見つけ、それらのディレクトリへのフルパスを印刷します。

または、現在の作業ディレクトリを次のように表す$PWD変数を使用することもできます。

 $ $ PWD -TYPE D -NAME「ドキュメント」を見つけます
ログイン後にコピー

両方のコマンドは、現在のディレクトリから始めて、同じ結果を達成します。

-inameを使用してケースを無視します

これは、 findコマンドの非常に便利なフラグです。

-nameの代わりに-inameオプションを使用して、ケースに依存しない検索を実行できます。

以下は、 -nameの代わりに-inameを使用する例です。

 $ find -type d -iname "documents"
ログイン後にコピー

-iname "Documents"オプションは、ディレクトリを「ドキュメント」、「ドキュメント」、「ドキュメント」などの名前と一致させます。これは、ディレクトリ名の正確なケースがわからない場合に役立ちます。

-name-inameの主な違いは次のとおりです。

  • -nameケースに敏感な検索を実行するため、提供されたパターンとまったく同じケースのディレクトリのみを一致させます。
  • -inameケースに依存しない検索を実行するため、ケースに関係なくディレクトリと一致します。

このようなワイルドカードに検索用語を含めることもできます。

 $ find d -name "*documents*"
ログイン後にコピー

このコマンドは、名前に「ドキュメント」を含む現在のディレクトリ(およびそのサブディレクトリ)のすべてのディレクトリをリストします。

-inameを使用すると、探しているディレクトリ名の正確なケースを知らないか気にしない場合は、より便利です。

個人的には、何かを検索するとき、私はfindコマンドで-inameオプションを使用することを好みます。

ディレクトリとファイルを検索します

-name-inameオプションなどの他の基準に一致するファイルとディレクトリを検索findから-type dパーツを削除すると、ファイルとディレクトリが検索されます。

コマンドは次のとおりです。

 $ find -iname "documents"
ログイン後にコピー

これが起こることです:

  1. findコマンドは、「ドキュメント」(ケースの鈍感)という名前のプロジェクト(ファイルおよびディレクトリ)の現在のディレクトリ(。)とそのすべてのサブディレクトリを検索します。
  2. 「ドキュメント」という名前のディレクトリと、結果に「ドキュメント」という名前の通常のファイルが含まれます。

したがって、このコマンドの出力には次のものが含まれます。

  • 「ドキュメント」、「ドキュメント」、「ドキュメント」などという名前のディレクトリ
  • 「ドキュメント」、「ドキュメント」、「ドキュメント」などの通常のファイル

-type dセクションを削除すると、指定された名前パターンに一致するディレクトリとファイルが含まれるため、検索が広くなります。

これは、探している「ドキュメント」エントリがディレクトリまたはファイルであるかどうか、そしてすべての出来事を見つけたいかどうかがわからない場合に役立ちます。

ただし、「ドキュメント」という名前のディレクトリを具体的に探している場合は、検索を絞るために-type dオプションを維持することをお勧めします。

最近変更されたディレクトリを見つけます

特定の日付範囲内で変更されたディレクトリをリストするには、 -newermt 2回使用します。

たとえば、2024年3月15日から2024年4月15日までに作成または変更されたディレクトリを検索するには(これら2日間を除く)、次を使用できます。

 $ find/path/to/search -Type D -Newermt "2024-03-15"!
ログイン後にコピー

上記のコマンドの内訳は次のとおりです。

  1. find /path/to/search/path/to/searchディレクトリから検索を開始するようにfindを見つけます。
  2. -type d :このオプションは、 findコマンドが通常のファイルではなくディレクトリのみを検索することを保証します。
  3. -newermt "2024-03-15" :このオプションは、2024年3月15日よりも更新(作成または変更された)ディレクトリのみを含めるようにfindを指示します。
  4. ! -newermt "2024-04-15" ! find

これらのオプションの組み合わせにより、2024年3月15日以降、2024年4月15日までにfind検索ディレクトリが作成または変更されます。

たとえば、これは、特定の期間に作成または変更されたすべてのディレクトリを見つけたい場合に役立ちます(たとえば、バックアップや監査など)。

過去のn日に変更されたディレクトリを見つけてください

過去のn日に変更されたディレクトリを見つけるには、 -mtimeを使用してください。

次のコマンドは、〜/ Projects/ディレクトリの下で過去7日間に変更されたディレクトリを検索します。

 $ find〜/ projects/ -type d -mtime -7
ログイン後にコピー

コマンドの各部分が行うことは次のとおりです。

  1. find ~/Projects/ :〜/ projects/ directoryから検索を開始するようにfindを見つけます。
  2. -type d :このオプションは、 findコマンドが通常のファイルではなくディレクトリのみを検索することを保証します。
  3. -mtime -7 :このオプションは、過去7日間に変更されたディレクトリのみを含めるようにfindに指示されています(「M」は「M」は「時間の変更」を意味します)。

-mtime -7部分の作業原則は次のとおりです。

  • マイナス記号( - )は、「過去に」または「以下」を意味します。
  • 7番は日数を表します。

たとえば、これは、〜/ Projects/ Directory(おそらくバックアップまたは追跡用)で最近作成または更新されたすべての新しいディレクトリを見つけたい場合に非常に便利です。

古いディレクトリを特定します

数日前に変更されたディレクトリを見つけるには(つまり、n日前のディレクトリを見つける)、プラス記号で-mtime使用します。

たとえば、次のコマンドは、7日前に〜/ Projects/ディレクトリの下で変更されたディレクトリを検索します。

 $ find〜/ projects/ -type d -mtime 7
ログイン後にコピー

言い換えれば、過去7日間に変更されていない(作成、更新、またはアクセス)ディレクトリを探します。

-mtime 7オプションは、変更時間(「M」の「M」)が7日前よりも大きいディレクトリのみを含めるようにfind指示しています。

したがって、このコマンドを使用して、しばらくの間触れたり変更されていないディレクトリを見つけることができます。これは、未使用または時代遅れのディレクトリまたはプロジェクトディレクトリ構造のメンテナンス/クリーニングなどのタスクを実行するのに役立ちます。

ディレクトリが実際にX日前に変更されたかどうかをどのようにして知ることができますか?とてもシンプルです。

findコマンドによって見つかったディレクトリが7日前に変更されたことを確認するために、 statコマンドを使用して各ディレクトリの変更時間を表示できます。

 $ find〜/ project/ -type d -mtime 7 -exec stat -c '%n%y' {} \;
ログイン後にコピー

以下は、上記のコマンドの説明です。

  1. find ~/Projects/ -type d -mtime 7 :このコマンドパーツは以前と同じです。7日前にディレクトリを見つけます。
  2. -exec stat stat ' -exec n find -exec stat -c '%n %y' {} \;
  • stat -c '%n %y'statコマンドには、ディレクトリのファイル名(%n)と最後の変更された時間(%y)が表示されます。
  • {} :これはプレースホルダーであり、 findが見つけた現在のディレクトリに置き換えられます。
  • \;これは-execコマンドを終了します。

このコマンドを実行すると、7日前に各ディレクトリのパスと最後の変更時間が表示されます。これにより、見つかったディレクトリが7日前に実際に変更されたことを確認できます。

これが出力の例です。

 <code>/home/ostechnix/Projects/Python 2024-03-22 14:18:14.958042173 0530 /home/ostechnix/Projects/Vim 2024-03-22 14:05:55.887041168 0530</code>
ログイン後にコピー

出力に表示される変更時間は、元のfindコマンドで要求されるように、ディレクトリが実際に7日より長いことを確認するのに役立ちます。

指定された範囲内のディレクトリを検索します

findコマンドのmaxdepthおよびmindepthオプションを使用して、指定された深度範囲内のディレクトリを検索できます。

以下は構文です。

 find/path/to/search -mindepth x -maxdepth y -type d
ログイン後にコピー

このコマンドの各オプションが何をするかを説明させてください。

  1. find /path/to/search/path/to/searchディレクトリから検索を開始するようにfindを見つけます。
  2. -mindepth X :このオプションは、ディレクトリの最小深度レベルを設定して、検索結果に含める。値xは、開始点から始まるディレクトリレベルの最小数を表します。
  3. -maxdepth Y :このオプションは、検索結果に含めるディレクトリの最大深度レベルを設定します。値yは、開始点から始まるディレクトリレベルの最大数を表します。
  4. -type d :このオプションは、 findコマンドが通常のファイルではなくディレクトリのみを検索することを保証します。

-typeを含む他のパラメーターの前に、 -mindepthオプションを指定する必要があることに注意してください。

たとえば、少なくとも2層の深さ2層を検索するには、 /Projectsディレクトリの深さまで最大4レイヤーを検索するには、次のコマンドを使用できます。

 $ find〜/projects -mindepth 2 -maxdepth 4 -type d
ログイン後にコピー

このコマンドは/Projectsディレクトリに比べて、少なくとも2層の深さと深さ4層までのディレクトリ(含まれています)を検索します。

特定のニーズに応じてxとyの値を調整できます。たとえば、深さ3層のディレクトリを検索する場合は、以下を使用できます。

 $ find〜/projects -mindepth 3 -maxdepth 3 -type d
ログイン後にコピー

これには、検索結果に3層のディープディレクトリのみが含まれます。

maxdepthmindepthを組み合わせて使用​​すると、検索を特定の範囲のディレクトリ深度に絞り込むことができます。これは、ファイルシステムの整理と管理に非常に役立ちます。

ディレクトリアクセス許可に基づいてディレクトリを見つけます

ディレクトリの権限に基づいてディレクトリを見つけるには、 -permオプションを使用して[ findコマンド]を使用できます。

 find/path/to/search -Type D -Perm<permission_specification></permission_specification>
ログイン後にコピー

/path/to/searchディレクトリに置き換えて検索を開始し、<permission_specification></permission_specification>必要な権限に置き換えます。 Octal Notationを使用してアクセス許可を指定できます。

いくつかの例をお見せしましょう。

現在のディレクトリで許可755(つまり、所有者はRWX、グループ、その他はRXです)を持つすべてのディレクトリを見つけるには:

 $ find -type d -perm 755
ログイン後にコピー

所有者がRWX許可を持っているディレクトリを見つけるために、グループにはRX許可があり、その他には許可がありません。

 $ find -type d -perm 750
ログイン後にコピー

所有者が許可証とグループに持っているプロジェクトですべてのディレクトリを見つけるには、RX許可があります。

 $ find〜/projects〜 -type d -perm -005
ログイン後にコピー

特定の要件に従って調整できます<permission_specification></permission_specification>。さらに、 -maxdepthおよび-mindepthオプションを使用して、必要に応じて検索の深さを制御できます。

特定の数のファイルを含むディレクトリを見つけます

特定の数のファイルを含むディレクトリを見つけるには、 findwcおよびBashコマンドを組み合わせて使用​​できます。

例:

次のコマンドは、現在のディレクトリとそのサブディレクトリに4つのファイルを含むディレクトリを探し、それらのディレクトリへのフルパスを印刷します。

 $ type d -exec bash 'if [$ 1 "-maxdepe f | wc -l)
ログイン後にコピー

コマンドを段階的に分解しましょう。

  1. find . -type d :現在のディレクトリ(。)からディレクトリ(ファイルではない)の検索を開始します。
  2. -exec bash -c exec find -exec bash -c '...' _ {} \;
  3. if [ $(find "$1" -maxdepth 1 -type f | wc -l) -eq 4 ]; then echo "$1"; fi
  • $(find "$1" -maxdepth 1 -type f | wc -l)現在のディレクトリ(「$ 1」)のファイルの数(ディレクトリではなく)を計算します。 -maxdepth 1オプションは、サブディレクトリのファイルではなく、現在のディレクトリ内のファイルのみを計算することが保証されます。
  • [ ... -eq 4 ] :これは、現在のディレクトリ内のファイルの数が正確に4であるかどうかをチェックします。
  • then echo "$1"; fi

たとえば、これは、特定の数のファイルを含む特定のディレクトリセットがあり、その基準を満たしていないディレクトリをすばやく識別する場合に役立ちます。

空のディレクトリを検索します

空のディレクトリを見つけるには、 -emptyフラグを使用します。

 find/path/to/search -Type D -Empty
ログイン後にコピー

たとえば、「作業」ディレクトリで空のディレクトリを検索するには、実行します。

 $ find〜/ work/ -type d -Empty
ログイン後にコピー

必要に応じてパスを調整することを忘れないでください。

要約します

このガイドでは、 findコマンドを使用してLinuxシステムでディレクトリを検索するためのいくつかのテクニックを学びました。

名前、前回の変更、または内部ファイルの数で検索できます。特定の権限を備えた空のフォルダーやフォルダーを見つけることもできます。

maxdepthmindepthsizeなどのオプションを使用する方法を学ぶことで、検索を改善して、必要な特定のディレクトリに集中できます。

したがって、次回フォルダーが紛失したときにパニックに陥らないでください!これらのfindコマンドを使用して、それを追跡し、ファイルを整理したままにします。

以上がコマンドラインからLinuxでディレクトリを見つける方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート