コンピューターを操作する際の一般的な問題の1つは、保存したファイルがどこかに見つからないことです。多くのGUIプログラムでは、配布に関係なく、Linuxでの作業中にファイルを検索できます。ただし、状況によっては、特にサーバーを管理している場合やSSHを使用してシステムにアクセスしている場合は、コマンドライン端末にしかアクセスできません。ファイルが見つからない場合は、Linuxでコマンドラインプログラムを使用してファイルを探す必要があります。
このチュートリアルでは、UbuntuOSのコマンドラインプログラムであるターミナルを使用してファイルを検索する方法を説明します。シェルでは、ファイルを検索するための3つのよく知られた方法があります。
- 検索を使用してファイルを検索する コマンド
- 検索の使用 ファイルを検索するコマンド
- Grepの使用 ファイルを検索するコマンド
検索および検索コマンドはシステム内のファイルを検索するために使用され、grepはファイルに含まれるテキストに基づいてファイルを検索するために使用されます。検索は低速な方法ですが、いくつかの検索条件が含まれていますが、検索にはそれほど多くの条件は含まれていませんが、検索よりもはるかに高速です。
手順を始めましょう。 Ubuntu 20.04 LTSを使用します この記事に記載されている手順を説明してください。
方法1:検索コマンドを使用する
検索は、さまざまな条件に基づいてファイルを検索するために使用される非常に柔軟なコマンドです。ファイルの名前を覚えていないファイルを検索するときに非常に便利なツールです。 [検索]コマンドを使用すると、ファイルとフォルダーの名前、作成日、変更日、およびアクセス許可に基づいて検索できます。これらの複数の条件を1つの検索コマンドに組み合わせることができます。これは非常に強力ですが、検索速度が遅くなります。
コマンドの一般的な構文は次のとおりです。
$ find /path/to/file/ -iname filename
特定のディレクトリ内のファイルを検索
[検索]コマンドを使用して、特定のディレクトリ内のすべてのファイルを検索できます。一般的な構文は次のとおりです。
$ find /path/to/file/
たとえば、 / home / tin / Downloads /の下にあるすべてのファイルを検索するには ディレクトリで、 Ctrl + Alt + Tを押してターミナルを起動します 次に、ターミナルで次のコマンドを実行します。
$ find /home/tin/Downloads/
現在のディレクトリ内のファイルを検索
現在のディレクトリでファイルを検索するには、
を使用します$ find .
現在のディレクトリで「softwares」などの名前のファイルを検索するには、ターミナルで次のコマンドを使用します。
$ find . -iname Softwares
ワイルドカードを使用して検索
ワイルドカード文字を使用して、クエリに一致するファイルを見つけることもできます。一般的な構文は次のとおりです。
$ find /path/to/file/ -iname filename*
たとえば、「cent」という単語で始まるファイルを検索するには、ターミナルで次のコマンドを実行します。
$ find /home/tin/ -iname cent*
空のファイルを検索する
検索コマンドを使用して空のファイルを検索することもできます。一般的な構文は次のとおりです。
$ find /path/to/file/ -iname -empty
たとえば、 / home / tinの下にある空のファイルを検索します ディレクトリで、ターミナルで次のコマンドを実行します:
$ find /home/tin/ -empty
日時に基づいて検索
[検索]コマンドを使用すると、ファイルがいつアクセスまたは変更されたかに応じてファイルを検索することもできます。ファイルの検索に使用できる時間には次の種類があります。
- mtime(変更時間) :ファイルのコンテンツが前回変更されたとき。
- atime(アクセス時間) :ファイルが最後にアクセスされたとき。
- ctime(変更時間) :ファイル属性が前回変更されたとき。
たとえば、2日以内に変更された現在のディレクトリ内のファイルを検索するには、ターミナルで次のコマンドを実行します。
$ find . -mtime -2
2日以内にアクセスされたファイルを検索するには、ターミナルで次のコマンドを実行します。
$ find . –atime -2
2日以内に変更されたファイルを検索するには、ターミナルで次のコマンドを実行します。
$ find . –ctime -2
ファイルサイズに基づいて検索
たとえば、サイズが5MBを超えるファイルを検索するには、ターミナルで次のコマンドを使用できます。
$ find . –size +5M\
ファイルのアクセス許可に基づいて検索
特定の権限を持つファイルを検索するために使用されます。一般的な構文は次のとおりです。
$ find /path/to/file/ -type -perm mode
場所:
タイプ パラメータにはdが含まれます またはf ファイルのタイプを指定するために使用される値。 d ディレクトリおよびf ファイルのみ。
モード 数値の許可(例:777、655など)または記号の許可(例:u =x、a =r + x)のいずれかを使用できます。
たとえば、644の権限を持つファイルを検索するには、ターミナルで次のコマンドを使用できます。
$ find . –type f –perm 644
方法2:検索コマンドを使用する
Linuxでファイルを検索するために使用できる別のコマンドLocateがあります。検索ユーティリティが提供するほど多くの検索条件はありませんが、検索ユーティリティよりもはるかに優れており、高速です。背後にある理由は、システムで実際に実行され、新しいファイルを検索して独自のデータベースに保存するバックグラウンドプロセスです。検索コマンドとは異なり、ローカルハードディスクでファイルやディレクトリを検索するのではなく、独自のデータベースでそれらを検索します。検索ユーティリティを機能させるには、データベースを定期的に更新する必要があります。
Locateのインストール
LinuxOSにはデフォルトでLocateはインストールされていません。手動でインストールする必要があります。 Ctrl + Alt + Tを押します ターミナルを起動し、sudoとして次のコマンドを入力して、Locateユーティリティをインストールします。
$ sudo apt-get install locate
インストールが完了すると、Locateユーティリティをすぐに使用できます。
コマンドの一般的な構文は次のとおりです。
$ locate –i filename
ここで、-iは大文字と小文字の区別を無視するために使用されます。
ファイルの検索
たとえば、ファイル名「centos」を検索するには、ターミナルで次のコマンドを使用します。
$ locate –i centos
ファイル名に「centos」という文字列が含まれているすべてのファイルを検索します。
複数のファイルを検索
複数のファイル名を同時に検索することもできます。たとえば、ターミナルで次のコマンドを使用して、2つのファイル「sdn.txt」を検索します。 および「centos」 :
$ locate –i sdn.txt centos
ワイルドカードを使用して検索
ワイルドカード文字を使用して、クエリに一致するファイルを検索することもできます。たとえば、「。iso」で終わるすべてのファイルを検索するには、ターミナルで次のコマンドを使用します。
$ locate –i *.iso
データベースの検索を更新
Locateコマンドはデータベースに依存して機能するため、定期的に更新する必要があります。ターミナルで次のコマンドを実行して、Locateユーティリティデータベースを更新します。
$ sudo updatedb
方法3:Grepコマンドを使用する
Grepはシステム内のファイルを直接検索するためのものではありませんが、代わりにテキストを検索するために使用されます。ただし、これを使用して、検索クエリに一致する特定の文字列を含むファイルの名前を表示できます。文字列を検索するには、文字列を二重引用符で囲む必要があります。
コマンドの一般的な構文は次のとおりです。
$ grep [options] [pattern] [/ path / to / file]
where [options] パラメータには、検索と[パターン]を制御するための一般的なオプションが含まれています 検索する文字列が含まれています。
特定のディレクトリにあると思われる単語を含むファイルを探している場合は、ターミナルで上記のコマンド構文を使用して検索できます。
たとえば、「tintin」という単語を含むファイルを検索すると、そのファイルはダウンロードに含まれている可能性があります。 フォルダの場合、次のコマンドを使用してそのファイルを見つけることができます。
$ grep -r –i “tintin” /home/tin/Downloads
どこ
-iは大文字と小文字の区別を無視するために使用されます
–rは、指定されたディレクトリを再帰的に検索するために使用されます
複数の単語を検索
複数の文字列を同時に検索することもできます。バックスラッシュ「\」とパイプ記号「|」を使用する必要があります文字列の中の文字。
たとえば、「tintin」と「ping」の2つの文字列を検索するには、ターミナルで次のコマンドを使用できます。
$ grep –r –I “tintin\|ping” /home/tin/Downloads
これが、Ubuntuのコマンドラインを使用してファイルを検索する方法の概要です。この記事では、ファイルを検索するための3つの便利なコマンドラインメソッドを見てきました。検索速度と条件に応じて、これらの方法のいずれかを選択できます。