Linuxシステムにフォルダーが見つかりませんか?心配しないで! Linuxは、行方不明のディレクトリを見つけるための強力なコマンドラインツールを提供します。最も一般的なツールは、さまざまな基準に基づいてディレクトリを検索できるfind
コマンドです。このガイドでは、Linux Systemsでディレクトリを見つけるためのいくつかの方法を紹介します。
まず、名前でディレクトリを検索する方法を示します。次に、最近修正されたディレクトリと過去のn日に変更されたディレクトリを見つける方法を示します。また、古いディレクトリを識別する方法も学びます。これは、数日前に変更されたものです。
次に、 maxdepth
およびmindepth
オプションを使用して、指定された深度範囲内でディレクトリを検索する方法について説明します。特定の数のファイルを含むディレクトリとディレクトリの権限に基づいてディレクトリを見つける方法を学びます。
最後に、ファイルシステムの未使用または不要な部分を識別するのに非常に役立つ空のディレクトリの検索方法について説明します。
ガイド全体を通して、Linuxでディレクトリを使用する際にfind
コマンドを利用するのに役立つ実用的な例を提供します。
目次
ディレクトリの名前と検索の開始場所がわかっている場合は、次のコマンドを使用します。
find/path/to/search -Type d -Name "directory_name"
/path/to/search
実際のパスで、ターゲットディレクトリに"directory_name"
置き換えます。
例:
$ find〜/ -Type D -Name "Documents"
このコマンドは、ユーザーのホームディレクトリ(〜/)から「ドキュメント」という名前のディレクトリの検索を開始します。
これがコマンドの内訳です:
find ~/
:ユーザーのホームディレクトリ(〜/)から検索を開始します。-type d
:通常のファイルではなく、ディレクトリ(-Type D)の検索をfind
てください。-name "Documents"
:このオプションは、「ドキュメント」という名前のディレクトリを見つけるようにfind
に指示します。 「ドキュメント」の両側にある引用は、「ドキュメント」という言葉を含むディレクトリだけでなく、検索が正確な名前を探していることを確認します。したがって、このコマンドは、「ドキュメント」という名前のディレクトリのユーザーのホームディレクトリとそのすべてのサブディレクトリを検索します。ディレクトリが見つかった場合、それらのディレクトリへのフルパスを印刷します。
Home Directory(〜/)の代わりに現在のディレクトリから検索を開始する場合は、次のようにコマンドの一部を省略できます。
$ find d -name "documents"
各オプションの機能の内訳は次のとおりです。
find .
.
-type d
:ディレクトリを検索するように送っfind
ください。-name "Documents"
:このオプションは、「ドキュメント」という名前のディレクトリを見つけるようにfind
に指示します。このコマンドは、現在のディレクトリとそのすべてのサブディレクトリを検索し、「ドキュメント」という名前のディレクトリを見つけ、それらのディレクトリへのフルパスを印刷します。
または、現在の作業ディレクトリを次のように表す$PWD
変数を使用することもできます。
$ $ PWD -TYPE D -NAME「ドキュメント」を見つけます
両方のコマンドは、現在のディレクトリから始めて、同じ結果を達成します。
これは、 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"
これが起こることです:
find
コマンドは、「ドキュメント」(ケースの鈍感)という名前のプロジェクト(ファイルおよびディレクトリ)の現在のディレクトリ(。)とそのすべてのサブディレクトリを検索します。したがって、このコマンドの出力には次のものが含まれます。
-type d
セクションを削除すると、指定された名前パターンに一致するディレクトリとファイルが含まれるため、検索が広くなります。
これは、探している「ドキュメント」エントリがディレクトリまたはファイルであるかどうか、そしてすべての出来事を見つけたいかどうかがわからない場合に役立ちます。
ただし、「ドキュメント」という名前のディレクトリを具体的に探している場合は、検索を絞るために-type d
オプションを維持することをお勧めします。
特定の日付範囲内で変更されたディレクトリをリストするには、 -newermt
2回使用します。
たとえば、2024年3月15日から2024年4月15日までに作成または変更されたディレクトリを検索するには(これら2日間を除く)、次を使用できます。
$ find/path/to/search -Type D -Newermt "2024-03-15"!
上記のコマンドの内訳は次のとおりです。
find /path/to/search
: /path/to/search
ディレクトリから検索を開始するようにfind
を見つけます。-type d
:このオプションは、 find
コマンドが通常のファイルではなくディレクトリのみを検索することを保証します。-newermt "2024-03-15"
:このオプションは、2024年3月15日よりも更新(作成または変更された)ディレクトリのみを含めるようにfind
を指示します。! -newermt "2024-04-15"
!
find
これらのオプションの組み合わせにより、2024年3月15日以降、2024年4月15日までにfind
検索ディレクトリが作成または変更されます。
たとえば、これは、特定の期間に作成または変更されたすべてのディレクトリを見つけたい場合に役立ちます(たとえば、バックアップや監査など)。
過去のn日に変更されたディレクトリを見つけるには、 -mtime
を使用してください。
次のコマンドは、〜/ Projects/ディレクトリの下で過去7日間に変更されたディレクトリを検索します。
$ find〜/ projects/ -type d -mtime -7
コマンドの各部分が行うことは次のとおりです。
find ~/Projects/
:〜/ projects/ directoryから検索を開始するようにfind
を見つけます。-type d
:このオプションは、 find
コマンドが通常のファイルではなくディレクトリのみを検索することを保証します。-mtime -7
:このオプションは、過去7日間に変更されたディレクトリのみを含めるようにfind
に指示されています(「M」は「M」は「時間の変更」を意味します)。 -mtime -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' {} \;
以下は、上記のコマンドの説明です。
find ~/Projects/ -type d -mtime 7
:このコマンドパーツは以前と同じです。7日前にディレクトリを見つけます。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
このコマンドの各オプションが何をするかを説明させてください。
find /path/to/search
: /path/to/search
ディレクトリから検索を開始するようにfind
を見つけます。-mindepth X
:このオプションは、ディレクトリの最小深度レベルを設定して、検索結果に含める。値xは、開始点から始まるディレクトリレベルの最小数を表します。-maxdepth Y
:このオプションは、検索結果に含めるディレクトリの最大深度レベルを設定します。値yは、開始点から始まるディレクトリレベルの最大数を表します。-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層のディープディレクトリのみが含まれます。
maxdepth
とmindepth
を組み合わせて使用すると、検索を特定の範囲のディレクトリ深度に絞り込むことができます。これは、ファイルシステムの整理と管理に非常に役立ちます。
ディレクトリの権限に基づいてディレクトリを見つけるには、 -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
オプションを使用して、必要に応じて検索の深さを制御できます。
特定の数のファイルを含むディレクトリを見つけるには、 find
、 wc
およびBashコマンドを組み合わせて使用できます。
例:
次のコマンドは、現在のディレクトリとそのサブディレクトリに4つのファイルを含むディレクトリを探し、それらのディレクトリへのフルパスを印刷します。
$ type d -exec bash 'if [$ 1 "-maxdepe f | wc -l)
コマンドを段階的に分解しましょう。
find . -type d
:現在のディレクトリ(。)からディレクトリ(ファイルではない)の検索を開始します。exec
find
-exec bash -c '...' _ {} \;
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システムでディレクトリを検索するためのいくつかのテクニックを学びました。
名前、前回の変更、または内部ファイルの数で検索できます。特定の権限を備えた空のフォルダーやフォルダーを見つけることもできます。
maxdepth
、 mindepth
、 size
などのオプションを使用する方法を学ぶことで、検索を改善して、必要な特定のディレクトリに集中できます。
したがって、次回フォルダーが紛失したときにパニックに陥らないでください!これらのfind
コマンドを使用して、それを追跡し、ファイルを整理したままにします。
以上がコマンドラインからLinuxでディレクトリを見つける方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。