Linuxでファイルを検索する方法!findコマンドの使い方を徹底解説
この記事では、Linuxのfindコマンドについて詳しく解説します。検索場所の指定方法(ショートカット)、よく使われる検索条件(式)、具体的な使用例、パターンを使った検索、findコマンドの出力をファイルに保存する方法、さらに見つけたファイルに対してコマンドを実行する方法まで、幅広くご紹介します。
findコマンドでLinux上のファイルを探す
Linuxでファイルを検索するために使うコマンドがfindです。
findコマンドの基本構文は以下のとおりです。
find 検索開始位置 検索条件
デフォルトでは、現在いるパス(カレントディレクトリ)が検索対象となります。ドライブ全体を検索したい場合は、次のように入力します。
find / -name "filename"
一方、現在いるフォルダ内だけを検索したい場合は、次の構文を使用します。
find . -name "filename"
ドライブ全体からファイル名を指定して検索する場合は、以下の構文を使います。
find / -name "filename"
findコマンドは、次の4つの要素で構成されています。
- 最初の部分は、findコマンドそのものです。
- 2番目の部分は、検索を開始する場所です。
- 3番目の部分は、何を探すかを決める式(オプション)です。
- 最後の部分は、検索するファイルの名前です。
多くのディストリビューションでシェル(ターミナルウィンドウとも呼ばれます)を開くには、該当するアイコンをクリックするか、Ctrl+Alt+Tキーを押します。
検索場所のショートカット
findコマンドの直後に続く最初の引数は、検索したい場所です。特定のディレクトリを直接指定することもできますが、メタキャラクタを代わりに使うことも可能です。このコマンドで使える3つのメタキャラクタは以下のとおりです。
- ピリオド(.): 現在のフォルダと、その中にネストされたすべてのサブフォルダを指定します。
- スラッシュ(/): ファイルシステム全体を指定します。
- チルダ(~): 現在のユーザーのホームディレクトリを指定します。
ファイルシステム全体を検索すると、「アクセス拒否」エラーが大量に表示されることがあります。通常のアカウントではアクセスできない場所も検索したい場合は、sudoコマンドを使って管理者権限で実行してください。
使える主な検索条件(式)
最もよく使われる式は-nameで、ファイルやフォルダの名前を検索します。
しかし、それ以外にもさまざまな式が用意されています。
- -amin n: n分前にアクセスされたファイルを検索します(時間の入力方法により+/−が変わります)。
- -anewer: 別のファイルを参照として、参照ファイルよりも最近にアクセスされたファイルを検索します。
- -atime n: n日前より多く/少なく前にアクセスされたファイルを検索します(対象時間nの入力方法によります)。
- -cmin n: ステータスがn分前に変更されたファイルを検索します。
- -cnewer: 別のファイルを参照として、参照ファイルよりも最近に変更されたファイルを検索します。
- -ctime n: ステータスがn日前より多く/少なく前に変更されたファイルを検索します。
- -empty: 空のファイルを検索します。
- -executable: 実行可能なファイルを検索します。
- -false: 常に偽を返します。
- -fstype type: 指定したファイルシステム上にあるファイルを検索します。
- -gid n: グループIDがnのグループに属するファイルを検索します。
- -group groupname: 指定した名前のグループに属するファイルを検索します。
- -ilname pattern: シンボリックリンクを、大文字小文字を区別せずに検索します。
- -iname pattern: ファイル名を、大文字小文字を区別せずに検索します。
- -inum n: 指定したinode番号を持つファイルを検索します。
- -ipath path: パスを、大文字小文字を区別せずに検索します。
- -iregex expression: 正規表現を、大文字小文字を区別せずに検索します。
- -links n: 指定した数のリンクを持つファイルを検索します。
- -lname name: シンボリックリンクを検索します。
- -mmin n: 内容がn分前に変更されたファイルを検索します。
- -mtime n: 内容がn日前より多く/少なく前に変更されたファイルを検索します。
- -name name: 指定した名前のファイルを検索します。
- -newer name: 指定した参照ファイルよりも新しく編集されたファイルを検索します。
- -nogroup: グループIDが設定されていないファイルを検索します。
- -nouser: ユーザーが紐付いていないファイルを検索します。
- -path path: 指定したパスを検索します。
- -readable: 読み取り可能なファイルを検索します。
- -regex pattern: 正規表現に一致するファイルを検索します。
- -type type: 特定の種類を検索します。主なオプションは以下のとおりです。
- -type d: ディレクトリ
- -type f: 通常ファイル
- -type l: シンボリックリンク
- -uid uid: 数値ユーザーIDがuidと一致するファイルを検索します。
- -user name: 指定したユーザーが所有するファイルを検索します。
- -writable: 書き込み可能なファイルを検索します。
findコマンドの使用例
ここでは、findコマンドの実際の使い方をいくつか紹介します。
一定日数より前にアクセスされたファイルを見つける方法
ホームフォルダ内で、100日以上前にアクセスされたすべてのファイルを検索するには、次のように入力します。
find ~ -atime +100
空のファイルやフォルダを見つける方法
システム内の空のファイルとフォルダをすべて検索するには、次のように入力します。
find / -empty
実行可能なファイルをすべて見つける方法
コンピューター上の実行可能なファイルをすべて検索するには、次のように入力します。
find / -executable
読み取り可能なファイルをすべて見つける方法
読み取り可能なファイルをすべて検索するには、次のように入力します。
find / -readable
パターンを使ってファイルを検索する
ファイルを検索するときには、パターンを利用できます。たとえば、拡張子がMP3のファイルをすべて検索するには、次のように入力します。
find / -name '*.mp3'
使用しているシェルによっては、アスタリスク(*)をエスケープする必要がある場合があります。コマンドを実行しても期待どおりの結果が得られないときは、上の例のようにパターン全体を引用符で囲んで試してみてください。
findコマンドの出力をファイルに保存する方法
findコマンドの主な課題は、結果が多すぎて一度に確認しきれないことがある点です。そんなときは、出力をtailコマンドにパイプして絞り込むか、次のようにリダイレクトでファイルに保存しましょう。
find / -name '*.mp3' > mp3list.txt
これで、検索結果がmp3list.txtというテキストファイルに保存され、後からゆっくり確認できるようになります。
ファイルを検索してコマンドを実行する方法
ファイルを検索しながら同時に編集したい場合は、次のように入力します。
find / -name filename -exec nano '{}' \;
上記のコマンドは、「filename」という名前のファイルを検索し、見つかったファイルに対してnanoエディターを起動します。
なお、nanoはコマンドの名前であり、この構文の固定部分ではありません。-execの後ろには、任意のコマンドを指定できます。たとえば、削除したければrmを、詳細情報を表示したければls -lを指定するなど、目的に応じて柔軟に組み合わせられます。
-
LinuxとmacOSでfdコマンドを使ってファイルを素早く検索する方法
fdは、従来のfindコマンドのシンプルな代替ツールです。簡潔な構文と短いコマンド体系を採用しており、入力の手間を大幅に減らせるのが特徴です。ただし、その簡潔さゆえに、初めて見たときには意味が分かりにくいという側面もあります。さらにfdは、標準のfindコマンドよりもパターンマッチングを高速に実行できる点も魅力です。この記事では、LinuxおよびmacOSでfdを使う方法を詳しく解説します。 Linuxへのfdのインストール fdは、デフォルトでインストールされているシステムは多くありません。お好みのパッケージマネージャーでダウンロード・インストールすれば、ターミナルからすぐに利用できるよう
-
Windows 10で見つからないファイルを探す方法|検索機能を最大限に活用するコツ
見当たらないファイルやプログラムをお探しですか?実は、Windowsに標準搭載されている検索機能を使えば、失くしたと思っていたデータが意外と簡単に見つかることがあります。 基本の検索方法:Win+Sショートカット Windowsの検索機能はOS本体やインターフェースに深く組み込まれており、いつでもすぐに呼び出せます。新しい検索を開始するには、キーボードのWin + Sを押すだけです。 検索ボックスが開いたら、探しているファイルの中身に含まれていると考えられる単語や文字列を入力してみましょう。運が良ければ、目的の項目が即座に表示されます。 カテゴリで検索結果を絞り込む 検索画面の上部にはカテゴ