Linuxでファイルやディレクトリを検索して見つける方法はたくさんありますが、最も簡単で迅速な方法はおそらくターミナルを使用することです。ただし、それを知っているLinuxユーザーは多くないため、不必要なフラストレーションが生じます。これは、システムで探しているものを見つけるのに役立つクイックガイドです。
「検索 」コマンドは、他のどのコマンドよりもはるかに高速であるため、Linuxユーザーが利用する必要がある最初の手段です。この比類のない速度の理由は、locateコマンドが実際にローカルハードディスクで検索する必要のあるファイルやディレクトリを検索するのではなく、システム内のすべてのファイルパスを含むmlocate.dbデータベースファイルを読み取るようなものであるためです。 。
Locateをまだインストールしていない場合は、次のコマンドを使用します。
DebianとUbuntu
sudo apt-get install locate
CentOS
yum install locate
最初に使用するために検索コマンドを準備する
最初に使用する前にmlocate.dbデータベースを更新するには、次のコマンドを実行します。
sudo updatedb
Locateを使用するには、ターミナルを開き、locateと入力してから、探しているファイル名を入力します。この例では、名前に「sunny」という単語が含まれているファイルを検索しています。
locate sunny
Locateは、検索キーワードがデータベースで一致した回数も示します。これは、コマンドに「count」を表す「-c」パラメータを含めることで実現されます。
locate -c sunny
ここでユーザーが覚えておく必要があるのは、他のより柔軟なツールとは異なり、「検索」には探しているファイルの具体的で正確な名前が必要であるということです。つまり、locateは、その名前が確かなものを見つけるのに最適ですが、ファイル名を正確に覚えていない場合にはあまり適していません。
locate howtoforge
vs
locate Howtoforge
さらに、「検索 」はデータベースファイルを読み取ります。結果が古く、完全に正しくない可能性があります。この問題を軽減するには、「 sudoupdatedb」と入力してファイルパスデータベースを更新します。 ターミナルセッションで」。
locateコマンドの使用方法のその他の例については、こちらをご覧ください。
それでも探しているものが得られない場合、または単に結果の数に圧倒されている場合は、次のステップである「検索」コマンドに進んでください。
「検索 」コマンドははるかに強力ですが、検索ユーティリティも遅くなります。これは、「locate」コマンドとは逆に、「find」が実際にディスクを検索して、ユーザーが探しているファイルとディレクトリを探すためです。検索は、ファイルまたはディレクトリを検索しようとしているが、その名前を思い出せない場合に最適です。「検索」では、特定のユーザーまたはユーザーグループに属するファイル、変更またはアクセスされたファイルを検索できるためです。最近、特定のサイズ範囲のファイル、隠しファイル、実行可能ファイル、読み取り専用ファイル、および特定のアクセス許可を持つファイル。最良の部分は、ユーザーが上記の複数の基準を1つの「検索」コマンドに自由に組み合わせて、基本的に結果を絞り込むことができることです。
絞り込みと言えば、「検索」を実行するときに最初にしたいことは、特定のディレクトリを検索するように指示することです。これにより、検索プロセスが大幅に高速化されますが、常にディレクトリのサイズによって異なります。ファイルの場所がわかっている場合は、ターミナルを開き、ディレクトリに移動して「find」を実行します。 [ファイル名] 」。そのドットは、現在のディレクトリで検索するように検索するように指示します。代わりにホームディレクトリを検索する場合は、ドットを「〜/」に置き換え、ファイルシステム全体を検索する場合は、代わりに「/」を使用します。
例として、ダウンロードディレクトリでポスターを含むファイルを検索したいと思います。ファイル名に「poster」という単語が含まれていることは知っていますが、名前を正確に覚えていません。このため、「cd Downloads」を使用してターミナルからダウンロードフォルダに移動し、次のコマンドを入力します。
sudo find . -name "*poster*"
結果は次のとおりです。
これは、ダウンロードフォルダに「billy_postercopy」という名前のPDFファイルがあることを示しています。それがどこにあるかわからない場合でも、親ディレクトリを検索すると、「検索」によってダウンロードフォルダにあることがわかります。
ここで、「-name」パラメーターを「-iname」に置き換えると、大文字と小文字に関係なく結果を得ることができます。これは「検索」にはないものなので、ファイル名がわからない場合に役立つもう1つの要素です。
sudo find . -iname "*poster*"
ここで、同じポスターファイルをまだ検索していると仮定します。覚えているのは、サイズが5MB未満であるということだけです。その場合に使用するコマンドは次のとおりです。
find ~/ -size -5M
たとえば2MBよりも大きいことがわかっている場合、コマンドは「find〜/ -size+2M」になります。最良の部分は、findがブール演算子をサポートして検索をさらに強力にすることです。この例では、ファイルのサイズが5メガバイト未満で、サイズが2を超えるという知識を組み合わせたコマンドを使用します。このコマンドは次のようになります。
find / -size -5M -and -size +2M
最後に、ファイルについて何も覚えていないが、3分以内にアクセスしたことを覚えていることを提案しましょう。それを見つけるには、次のように検索コマンドを使用します:
find / -amin -3
これは、30分は「find / -amin -30」、2時間は「-amin-120」などになります。2日前にファイルにアクセスした場合は、代わりにこれを使用してください。
find / -time -2
これにより、過去2日間にアクセスされたすべてのファイルが検索場所に表示されます。
上記は、通常のユースケースシナリオのほとんどをカバーしていると思います。強力な「find」コマンドの詳細については、ターミナルを開いて「manfind」と入力してください。探しているものを見つけて頑張ってください。
Linuxのfindコマンドのその他の例はここにあります。