Linuxシステム内でのファイルの検索は、その方法がわからないと難しいかもしれません。Linuxシステム内でのファイルの検索には、「端末」の各種コマンドを使うのが一番です。これらのコマンドを使いこなせれば、ファイルを完全に制御することが可能で、他のオペレーティングシステムの単純な検索機能よりもはるかに優れています。

方法 1 の 3:
「find」を使う

  1. 1
    ファイル名でファイルを検索する ファイル名でのファイルの検索は、findコマンドを使って実行できる最も基本的な検索です。以下のコマンドでは、カレントディレクトリとそのサブディレクトリ内のクエリが検索されます。[1]
    find -iname "filename"
    
    • -nameの代わりに-inameを使った場合、クエリの大文字と小文字は区別されません。なお、-nameコマンドでは、大文字と小文字が区別されます。
  2. 2
    ルートディレクトリから検索が開始されるように設定する システム全体を検索したい場合は、クエリに/という修飾子を付けましょう。ルートディレクトリを起点としたすべてのディレクトリが検索されるようにfindに指定することができます。
    find / -iname "filename"
    
    • /home/patのように/をディレクトリパスに置き換えると、特定のディレクトリから検索が開始されるようになります。
    • /の代わりに.を使った場合、カレントディレクトリとサブディレクトリでの検索しか行われません。
  3. 3
    ワイルドカード文字「.*」を使って、クエリに部分一致するものを検索する ワイルドカード文字「*」は、フルネームがわからない場合や特定の拡張子のファイルをすべて検索したい場合に便利です。
    find /home/pat -iname "*.conf"
    
    • 上記のコマンドでは、Patのユーザーフォルダ(およびサブディレクトリ)内のすべての.confファイルが返されます。
    • また、このワイルドカード文字を使って、ファイル名に部分一致するすべてのファイルを検索することも可能です。例えば、「wikiHow」に関連する文書がたくさんある場合は、"*wiki*"と入力すれば、それらすべてを検索することができます。
  4. 4
    検索結果の管理を容易にする 検索結果がたくさん出てくると、取捨選択がしづらいことがあります。その場合は、|という文字を使って、検索結果を「less」というフィルタリングプログラムに送信しましょう。検索結果をスクロールできるようになり、検索結果もさらに絞り込みやすくなります。
    find /home/pat -iname "*.conf" | less
    
  5. 5
    特定の種類の検索結果を調べる 修飾子を使って、特定の種類の検索結果のみを返すこともできます。正しい修飾子を使えば、通常のファイル(f)やディレクトリ(d)、シンボリックリンク(l)、キャラクタデバイス(c)、ブロックデバイス(b)の検索が可能です。
    find / -type f -iname "filename"
    
  6. 6
    検索結果をファイルサイズで絞り込む 似たような名前のファイルがたくさんあるけど、検索しているファイルのサイズがわかっている場合は、検索結果をファイルサイズで絞り込むことができます。
    find / -size +50M -iname "filename"
    
    • 上記のコマンドでは、ファイルサイズが50ギガバイト以上の検索結果が返されます。ファイルサイズがそれ以上かそれ以下の検索結果を調べるときは、+-を使いましょう。また、+-を省略すると、指定したファイルサイズと正確に一致するファイルが検索されます。
    • 検索結果は、バイト(c)、キロバイト(k)、メガバイト(M)、ギガバイト(G)、または512バイト(b)単位で絞り込むことができます。このとき、サイズフラグでは大文字と小文字が区別されるので注意しましょう。
  7. 7
    ブール演算子を使って、検索フィルタを組み合わせる -and-or-notという演算子を使って、複数の検索条件を1つにまとめることもできます。[2]
    find /travelphotos -type f -size +200k -not -iname "*2015*"
    
    • 上記のコマンドでは、ファイルサイズが200キロバイト以上の「travelphotos」ディレクトリ内のファイルで、ファイル名に「2015」が含まれていないものが検索されます。
  8. 8
    所有者別または権限別にファイルを検索する ユーザーが所有する特定のファイル、または特定の権限のファイルを検索する場合は、検索を絞り込むことができます。
    find / -user pat -iname "filename"
    find / -group users -iname "filename"
    find / -perm 777 -iname "filename"
    
    • 上記の例では、指定したユーザー、グループ、または権限でクエリを検索します。また、ファイル名のクエリを省略すれば、その種類と一致するファイルをすべて返すことも可能です。例えば、find / -perm 777だと、777(制限なし)権限のファイルがすべて返されます。
  9. 9
    ファイルが見つかったときにコマンドを組み合わせてアクション実行する findコマンドを他のコマンドと組み合わせて、クエリで返されたファイルに対してアクションを実行することもできます。findコマンドと2番目のコマンドを-execフラグで区切り、{} \;でその行を終わらせましょう。
    find . -type f -perm 777 -exec chmod 755 {} \;
    
    • 上記のコマンドでは、カレントディレクトリ(およびすべてのサブディレクトリ)で777権限のファイルが検索されます。このコマンドの後にchmodコマンドを使うと、権限が「755」に変更されます。
    広告

方法 2 の 3:
「locate」を使う

  1. 1
    .locateコマンドをインストールする 通常、locateコマンドでは、ファイル構造のデータベースから検索が行われるので、一般的にfindコマンドよりもはるかに高速な検索が可能です。ただし、すべてのLinuxディストリビューションにlocateコマンドがインストールされているわけではないので、以下のコマンドを入力してインストールしてみましょう。
    • sudo apt-get updateと入力して、 Enterキーを押します。
    • DebianやUbuntuでインストールするには、sudo apt-get install mlocateと入力して、 Enterキーを押します。locateコマンドがすでにインストールされている場合は、mlocate is already the newest versionというメッセージが表示されます。
    • Arch Linuxでインストールするには、「pacman」というパッケージマネージャを使って、pacman -S mlocateと入力します。
    • Gentooでインストールするには、「emerge」というコマンドを使って、emerge mlocateと入力します。
  2. 2
    .locateデータベースを更新する locateコマンドでは、データベースの構築および更新が行われるまで何も検索することができません。データベースの構築および更新は毎日自動的に行われますが、手動で更新することもできます。locateコマンドをすぐに使えるようにしたい場合は、以下の操作を行わなければなりません。[3]
    • sudo updatedbと入力して、 Enterキーを押します。
  3. 3
    .locateコマンドを使って、簡単な検索を行う locateコマンドでは高速な検索が可能ですが、findコマンドほど多くのオプションはありません。なお、基本的なファイル検索は、findコマンドとほぼ同じ方法で行うことができます。
    locate -i "*.jpg"
    
    • 上記のコマンドでは、拡張子が.jpgのファイルの検索がシステム全体で行われます。なお、ワイルドカード文字*は、findコマンドのときと同じように使うことができます。
    • findコマンドのときと同様に、-iではクエリの大文字と小文字は区別されません。
  4. 4
    検索結果を制限する 検索結果が多すぎて処理できない場合は、-nというオプションを使って検索結果を絞り込んだ後に、表示する検索結果の数を指定しましょう。
    locate -n 20 -i "*.jpg"
    
    • 上記のコマンドでは、クエリに一致する最初の20件の検索結果のみが表示されます。
    • また、|というパイプを使って、検索結果をlessに送信すると、簡単にスクロールできるようになります。
    広告

方法 3 の 3:
ファイル内の文字列を検索する

  1. 1
    .grepコマンドを使って、ファイル内の文字列を検索する 特定の語句や文字列を含むファイルを探している場合は、grepコマンドを使いましょう。grepコマンドの基本的な文法は以下の通りです。
    grep -r -i "search query" /path/to/directory/
    
    • -rを使うと検索が「再帰的」に行われるように設定されるため、カレントディレクトリとすべてのサブディレクトリで、クエリ文字列を含むファイルの検索が行われます。
    • -iでは、クエリの大文字と小文字を区別しないことを指定しています。大文字と小文字を区別して検索したい場合は、-iを省略しましょう。
  2. 2
    余分な文字を削除する 上記のようにgrep検索を実行すると、一致するクエリがハイライト表示された文字列とともにファイル名が表示されます。一致する文字列を非表示にして、ファイル名とパスだけを表示させたい場合は、以下の記述を追加しましょう。
    grep -r -i "search query" /path/to/directory/ | cut -d: -f1
    
  3. 3
    エラーメッセージを非表示にする grepコマンドでは、正しい権限のないフォルダにアクセスしようとしたり、空のフォルダにアクセスしたりすると、エラーが返されます。エラーメッセージを出力させたくない場合は、そのエラーメッセージを/dev/nullに送信しましょう。[4]
    grep -r -i "search query" /path/to/directory/ 2>/dev/null
    
    広告

関連記事

How to

XMLファイルを開く

How to

画像検索で簡単に人物を特定する

How to

EMLファイルを開く

How to

ワイヤレスマウスを接続する

How to

キズの付いたCDを修復する

How to

VCFファイルを開く

How to

特定のウェブサイトにアクセスできない問題を解決する

How to

コマンドプロンプトでファイルをコピーする

How to

DLLファイルを開く

How to

大容量の動画ファイルをメールで送る

How to

Chromeでタブを切り替える

How to

DVDプレーヤーを接続する

How to

Facebook Messengerでメッセージを削除する

How to

winmail.datを開く
広告

このwikiHow記事について

wikiHowは「ウィキ」サイトの一つであり、記事の多くは複数の著者によって共著されています。 この記事は、匿名の筆者を含む17人が執筆・推敲を行い、時間をかけて編集されました。
このページは 489 回アクセスされました。

この記事は役に立ちましたか?

広告