Linuxで名前でファイルを検索する方法

Linuxのコマンドラインからファイルを簡単に見つける

ユーザーは通常、GUIを使用してファイルを見つけようとします。ただし、システム上の膨大な数のファイルから個々のファイルを見つけるのは、非常に面倒な作業になる場合があります。従来それを見つけることは時間のかかる作業かもしれません。このタスクを簡単にするために、Linuxはこの仕事をするための特定のコマンドを提供しています。

探す は、Linuxシステムで使用される一般的なコマンドであり、名前、タイプ、拡張子、権限、所有者などに基づいてさまざまなファイルを検索するのに役立ちます。

このチュートリアルでは、名前でファイルを見つけることに焦点を当てます。で使用できるさまざまな引数を見ていきます 探す 指図。また、 見つける 名前でファイルを検索するためのより高速な方法でもあるコマンド。

の構文 探す 指図

を使用して 探す 適切な方法でコマンドを実行すると、タスクが簡単になります。このコマンドの一般的な構文をよく理解していれば、特定のタイプまたは拡張子のファイルを検索したり、名前で検索したりすることができます。

の一般的な構文 探す コマンドは次のとおりです。

find [search_path] [expression] [options] [find_what]

私は構文を単純化しようとしました 探す コマンドをよりよく理解するためのコマンド。

構文の各属性を見て、それぞれの重要性を理解しましょう。

Search_Path:ここに、システムがファイルの検索を開始するパスを指定するパスがあります。つまり、検索を開始する開始ディレクトリが指定されます。

表現:検索する特定のファイルの検索パターンを指定できます。

オプション:で使用される利用可能なオプションを使用できます 探す このスペースでコマンド。

find_what:この属性には、検索するファイルの名前または名前の一部を入力します。

このコマンドを例を挙げて説明しましょう。

/ home / gaurav / worksheet -name "source.c"を検索します

このコマンドでは、 探す ファイル「source.c」を検索するコマンド。特に「/ home / gaurav / workspace」パスで検索するように依頼しました。を使用して -名前 オプションを使用すると、「source.c」で指定されたファイルを検索できます。

これは、を使用するための最も簡単なデモンストレーションです。 探す 指図。

現在のディレクトリ内のファイルを検索しています

を使用して 探す 最も単純な形式のコマンドは、現在の作業ディレクトリでファイルを検索することです。

探す 。

このコマンドは、現在の作業ディレクトリ内のすべてのファイルを表示します。ここで ‘.‘は「現在の作業ディレクトリ」を意味します。以下は私の現在の作業ディレクトリからの出力です。このディレクトリに存在するすべてのファイルは、フィルターなしで一覧表示されます

出力:

。 ./context_log.policy ./snap ./snap/couchdb ./snap/couchdb/current ./snap/eclipse ./snap/eclipse/current ./snap/vim-editor ./snap/vim-editor/current ./ snap / vim-editor / common ./snap/vim-editor/1 ./snap/htop ./snap/htop/current ./snap/htop/common ./snap/htop/common/.local ./snap/htop /common/.local/lib ./snap/htop/common/.local/lib/locale ./snap/htop/common/.local/lib/locale/en_IN.UTF-8 ./snap/htop/common/。 local / lib / locale / en_IN.UTF-8 / LC_CTYPE

おおよその名前がわかっているファイルを検索するには、 探す 以下に示すようなコマンド。

探す 。 -名前[string_from_filename \ *]

:

探す 。 -名前コンテキスト\ *

このコマンドは、文字列「context」を含むファイルを検索します。

出力:

./context_log.policy ./context.xml ./context_preview.c

文字列「context」を含む現在のディレクトリ内のすべてのファイルが一覧表示されます。

ファイル名またはおおよその文字列を入力しているときに大文字と小文字の区別を自由にしようとすると、このコマンドで問題が発生します。

Linuxは大文字と小文字の区別にかなり注意しているため、検索が失敗する可能性が高くなります。文字列を「context」ではなく「CONTEXT」として使用すると、findコマンドの出力が得られません。ファイル名の1文字が元のファイル名とは異なる大文字小文字であっても、検索は失敗します。

しかし、それについて心配する必要はありません。簡単に交換できます -名前 オプションと -iname。これにより、ファイルの名前に関係なく、ファイルを検索できます。コマンドにこの単純な変更を加えるだけで、問題はありません。

探す 。 -iname CONT \ *

大文字の文字列を使用しても、出力は同じになります。

./context_log.policy ./context.xml ./context_preview.c

別のディレクトリにあるファイルを検索する

現在作業しているディレクトリに関係なく、Linuxシステム上の任意のディレクトリでファイルを簡単に検索できます。

[directory_path] -iname [specific_filename]を検索します

:

/ home / gaurav / tomcat -inameath.htmlを検索します

ここでは、特定のファイル「ath.html」を検索しましたが、この文字列に類似したファイルは検索していません。したがって、出力は上記の特定のファイルのみになります。

/home/gaurav/tomcat/ath.html

ここで、完全なファイル名ではなく、このファイル名の文字列のみがわかっているとします。次に、次の方法でファイルを検索できます。

/ home / gaurav / tomcat -inameathを検索\ *

このコマンドは、先頭に文字列「ath」が含まれているすべてのファイルを検索します。私は使用しました -iname ここにオプションがあるので、大文字と小文字の区別について心配する必要はありません。

出力:

/home/gaurav/tomcat/ATHENIAN_ART.html /home/gaurav/tomcat/ath_things.html /home/gaurav/tomcat/ath.html /home/gaurav/tomcat/ATHENIAN_ART.pdf /home/gaurav/tomcat/ATHHHHhow.html

このコマンドを使用して、名前が同じような拡張子で終わる複数のファイルを検索することもできます。

:

/ home / gaurav / tomcat -iname "* .c"を検索します

このコマンドは、ファイル名の拡張子が.cである、指定されたディレクトリ内のすべてのファイルを検索します。

出力:

/home/gaurav/tomcat/stiil.c /home/gaurav/tomcat/project/temp.c /home/gaurav/tomcat/copy.c /home/gaurav/tomcat/gy.c

私たちはについて学びました 探す ファイル名で指定されたファイルを検索するコマンド。それでは、従来よりも高速なもう1つのコマンドを調べてみましょう。 探す 指図。

見つける コマンドの概要

システム上のファイルを検索するコマンドがもう1つあります。これは、 探す 指図。それは 見つける 指図。このコマンドは、Linuxディストリビューションにはプリインストールされていません。次の手順を使用して、 見つける システムへのコマンドパッケージ。

UbuntuおよびDebianシステムの場合、 使用する:

sudo apt update sudo apt install mlocate

CentOsおよびFedoraシステムの場合、 使用する:

sudo yum install mlocate

Locateコマンドは、入力で指定されたパターンに従ってファイルを検索します。 見つける データベースファイルを使用してファイルを検索します。このデータベースファイルは、 更新されたb 指図。

sudo updatedb

このデータベースファイルの更新にかかる時間は、システム上のファイルによってユーザーごとに異なる場合があります。

を使用して 見つける 指図

あなたは使用することができます 見つける 次のようにコマンドします。コマンドを使用してデータベースファイルを更新してください sudo updatedb.

構文:

[filename_or_part_of_filename]を見つけます

このコマンドは、ルートディレクトリから検索を開始します。コマンドで指定されたファイル名またはファイル名の一部を含む、システム上のすべてのファイルのリストを返します。

:

copy.cを見つけます

出力:

/home/gaurav/Downloads/git-2.23.0/copy.c /snap/core/9804/usr/lib/python3.5/__pycache__/copy.cpython-35.pyc / snap / core / 9993 / usr / lib /python3.5/__pycache__/copy.cpython-35.pyc /snap/core18/1880/usr/lib/python3.6/__pycache__/copy.cpython-36.pyc / snap / core18 / 1885 / usr / lib / python3 .6 / __ pycache __ / copy.cpython-36.pyc /snap/core20/634/usr/lib/python3.8/__pycache__/copy.cpython-38.pyc /usr/lib/python3.5/__pycache__/copy.cpython -35.pyc /usr/lib/python3.6/__pycache__/copy.cpython-36.pyc /usr/share/icons/MacBuntu-OS/apps/128/copy.com.png

強調表示された行は、正確なファイル「copy.c」が見つかったことを示しています。この結果に加えて、ファイル名の一部として「copy.c」を含む特定の他のファイルも表示されます。

他の不要なファイルの乱雑さを回避し、目的のファイルのみを見つけるために、次の方法でlocateコマンドを使用できます。

-b '\ filename'を検索します

:

-b '\ copy.c'を見つけます

出力:

/home/gaurav/Downloads/git-2.23.0/copy.c

検索条件に記載されている特定のファイルが、それが配置されているディレクトリのパスとともに一覧表示されます。

を使用して 見つける コマンドは少しトリッキーに見えるかもしれませんが、ファイルの正確な場所がわからない場合は、ファイルを検索するためのより高速な方法です。 Locateコマンドが使用するデータベースファイルを更新すると、ファイルの取得が非常に高速になります。

結論

この短いチュートリアルでは、2つの重要なコマンドについて学びました。 探す見つける。これで、ファイルのスタックで迷子になることなく、システム上のファイルを簡単に検索できます。これらのコマンドを使用すると、ファイルを検索するタスクの時間を節約し、効率的にすることができます。