「Finderでファイルを探すのに時間がかかる…」
「大量のファイルから目的のものを見つけるのが大変…」
「もっと効率的にファイル検索をしたい」
そんなMacユーザーにおすすめなのが、ターミナルを使ったファイル検索コマンドです。
Finderでの検索も便利ですが、コマンドを使えばより速く、より正確に、より柔軟にファイルを見つけることができます。
特に、大量のファイルがある環境や、複雑な条件での検索では、その威力を実感できるでしょう。
この記事では、Macで使える3大ファイル検索コマンド「find」「mdfind」「locate」の基本的な使い方と使い分け方を、初心者にもわかりやすく解説します。
この記事で身につくこと
- ターミナルを使った効率的なファイル検索方法
- 3つのコマンドの特徴と使い分け
- 実際の作業で役立つ具体的な検索例
- コマンド検索のメリットとコツ
ターミナルの基本的な使い方

ターミナルを開く方法
まず、ターミナルを開いてみましょう。
方法1:Spotlightを使う
⌘ + スペース
でSpotlightを開く- 「ターミナル」と入力
- Enterキーで起動
方法2:アプリケーションフォルダから
- Finderで「アプリケーション」フォルダを開く
- 「ユーティリティ」フォルダをダブルクリック
- 「ターミナル」をダブルクリック
基本的な操作方法
コマンド入力の基本
- コマンドを入力してEnterキーを押すと実行されます
- 大文字・小文字は区別されるので注意してください
- 間違えた場合は
Ctrl + C
で中断できます
パス(場所)の指定方法
~
:ホームディレクトリ(/Users/あなたの名前/)~/Desktop
:デスクトップフォルダ~/Documents
:書類フォルダ/
:Macintosh HDのルート
ターミナルの基本がわかったところで、具体的な検索コマンドを見ていきましょう。
findコマンド:正確で柔軟な検索
findコマンドの特徴
「find」コマンドは、指定したディレクトリとその下層すべてを対象に、細かい条件を指定してファイルを検索できる万能なコマンドです。
findコマンドのメリット
- 検索条件を細かく指定できる
- ファイル名、更新日時、ファイルサイズなど様々な条件で絞り込み可能
- 確実に全てのファイルを調べる(見落としがない)
- 検索結果に対してさらに操作を加えることができる
基本的な使い方
基本構文
find [検索開始ディレクトリ] [検索条件]
最もシンプルな例
find ~/Desktop -name "*.pdf"
これは「デスクトップにあるすべてのPDFファイルを検索」という意味です。
実用的な検索例
例1:特定の名前のファイルを探す
# デスクトップから「report.txt」という名前のファイルを探す
find ~/Desktop -name "report.txt"
# 書類フォルダから「会議」という文字を含むファイルを探す
find ~/Documents -name "*会議*"
例2:ファイルの種類で絞り込む
# ダウンロードフォルダからすべての画像ファイル(.jpg, .png)を探す
find ~/Downloads -name "*.jpg" -o -name "*.png"
# 音楽フォルダからMP3ファイルだけを探す
find ~/Music -name "*.mp3"
例3:大文字・小文字を区別せずに検索
# 「REPORT」「report」「Report」などすべてにマッチ
find ~/Documents -iname "*report*"
より高度な条件指定
ファイルとフォルダを区別して検索
# ファイルのみを検索
find ~/Documents -type f -name "*レポート*"
# フォルダのみを検索
find ~/Documents -type d -name "*プロジェクト*"
更新日時で絞り込み
# 3日以内に更新されたファイルを検索
find ~/Documents -mtime -3
# 1週間以上前に更新されたファイルを検索
find ~/Documents -mtime +7
# 今日更新されたファイルを検索
find ~/Documents -mtime 0
ファイルサイズで絞り込み
# 100MB以上のファイルを検索
find ~/Downloads -size +100M
# 1KB以下の小さなファイルを検索
find ~/Documents -size -1k
検索結果に対する操作
検索したファイルを削除する
# ゴミ箱フォルダの古いファイルを削除(注意して使用)
find ~/.Trash -mtime +30 -delete
検索したファイルの詳細情報を表示
# 検索したファイルの詳細な情報を表示
find ~/Documents -name "*.pdf" -exec ls -la {} \;
findコマンドの注意点
パフォーマンスについて
- 検索範囲が広いと時間がかかる場合があります
- ルートディレクトリ(/)から検索すると非常に時間がかかるので注意
権限について
- アクセス権限のないフォルダは検索できません
- システムフォルダを検索する場合は
sudo
が必要な場合があります
findコマンドは少し複雑ですが、慣れると非常に強力なツールです。
次は、もっと簡単で高速なmdfindコマンドを見てみましょう。
mdfindコマンド:Spotlight検索の力を活用

mdfindコマンドの特徴
「mdfind」コマンドは、macOSの**Spotlight検索と同じ技術(メタデータ検索)**をターミナルから使えるコマンドです。
mdfindコマンドのメリット
- 非常に高速(インデックスを使用するため)
- ファイル名だけでなく、ファイルの内容も検索対象
- PDFの中身、Wordファイルのテキストなども検索可能
- シンプルで覚えやすい
基本的な使い方
基本構文
mdfind "検索ワード"
シンプルな検索例
# 「請求書」という単語を含むファイルを検索
mdfind "請求書"
# 「プレゼン」という単語を含むファイルを検索
mdfind "プレゼン"
実用的な検索例
例1:ファイル名での検索
# ファイル名に「会議」が含まれるものを探す
mdfind "filename:会議"
# 拡張子がpdfのファイルを探す
mdfind "kind:pdf"
例2:特定のフォルダ内だけを検索
# 書類フォルダ内から「レポート」を検索
mdfind -onlyin ~/Documents "レポート"
# デスクトップから画像ファイルを検索
mdfind -onlyin ~/Desktop "kind:image"
例3:作成者や日付で検索
# 特定の作成者のファイルを検索
mdfind "author:田中"
# 今日作成されたファイルを検索
mdfind "date:today"
# 今週作成されたファイルを検索
mdfind "date:this week"
高度な検索テクニック
複数の条件を組み合わせ
# PDFファイルで「売上」を含むものを検索
mdfind "kind:pdf AND 売上"
# 画像ファイルでサイズが大きいものを検索
mdfind "kind:image AND size:>10MB"
ファイルの内容を検索
# テキストファイルの中身に「重要」という文字があるファイル
mdfind "text:重要"
# Wordファイルの中身に「予算」という文字があるファイル
mdfind "textcontent:予算"
よく使うmdfind検索パターン
日常業務でよく使う検索
目的 | コマンド | 使用場面 |
---|---|---|
最近作成したファイル | mdfind "date:today" | 今日作業したファイルを探す |
特定形式のファイル | mdfind "kind:pdf" | プレゼン資料を探す |
大きなファイル | mdfind "size:>100MB" | 容量の大きいファイルを整理 |
特定フォルダ内検索 | mdfind -onlyin ~/Desktop "keyword" | デスクトップの整理 |
mdfindコマンドの便利なオプション
検索結果の表示件数を制限
# 最初の10件だけ表示
mdfind "請求書" | head -10
検索結果をファイル名のみ表示
# フルパスではなくファイル名のみ表示
mdfind "レポート" | xargs -I {} basename "{}"
mdfindは直感的で使いやすく、Spotlight検索をよく使う人にはおすすめです。
次は、最も高速なlocateコマンドを紹介します。
locateコマンド:超高速検索(事前設定が必要)

locateコマンドの特徴
「locate」コマンドは、*事前に作成されたインデックス(データベース)を使ってファイルを検索するため、検索速度が非常に高速です。
locateコマンドのメリット
- 検索が非常に高速(ほぼ一瞬で結果が出る)
- シンプルで覚えやすい
- 大量のファイルがあっても速度が落ちない
locateコマンドのデメリット
- 事前にインデックスを作成する必要がある
- 最新のファイルは検索結果に反映されない場合がある
- インデックスの更新が必要
初期設定の方法
locateコマンドを使うには、最初にインデックスを作成する必要があります。
ステップ1:locateサービスを有効にする
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist
ステップ2:インデックスを手動で作成(初回のみ)
sudo /usr/libexec/locate.updatedb
注意点
- 初回のインデックス作成には時間がかかります(数分〜数十分)
- システムが重くなる場合があるので、時間に余裕のあるときに実行してください
- インデックスは通常、週1回自動更新されます
基本的な使い方
基本構文
locate [ファイル名の一部]
シンプルな検索例
# ファイル名に「index.html」を含むファイルを検索
locate index.html
# 「config」を含むファイルを検索
locate config
# 「backup」を含むファイルを検索
locate backup
実用的な検索例
例1:特定の拡張子のファイルを探す
# すべてのPDFファイルを検索
locate .pdf
# すべてのテキストファイルを検索
locate .txt
例2:パターンマッチング
# 「report」で始まるファイルを検索
locate "report*"
# 数字で終わるファイルを検索
locate "*[0-9]"
例3:大文字・小文字を区別しない検索
# 大文字・小文字を区別せずに検索
locate -i README
locateコマンドの便利なオプション
検索結果の件数を制限
# 最初の20件だけ表示
locate -l 20 config
統計情報を表示
# データベースの統計情報を表示
locate -S
存在するファイルのみ表示
# 実際に存在するファイルだけを表示(削除されたファイルを除外)
locate -e config
インデックスの管理
手動でインデックスを更新
# インデックスを最新の状態に更新
sudo /usr/libexec/locate.updatedb
locateサービスを無効にする
# locateサービスを停止(必要に応じて)
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.locate.plist
locateコマンドの注意点
インデックスの鮮度
- 新しく作成したファイルは、次回のインデックス更新まで検索結果に表示されません
- 削除したファイルが検索結果に残る場合があります
プライバシーとセキュリティ
- システム全体のファイル情報がインデックス化されます
- 機密性の高いファイル名も検索対象になる可能性があります
locateは設定が少し面倒ですが、一度設定すれば非常に高速で便利です。
次に、3つのコマンドをどう使い分けるかを整理しましょう。
3つのコマンドの使い分けガイド
特徴別比較表
コマンド | 速度 | 精度 | 柔軟性 | 設定の簡単さ | 検索対象 |
---|---|---|---|---|---|
find | ★★☆ | ★★★ | ★★★ | ★★★ | ファイル属性・名前 |
mdfind | ★★★ | ★★★ | ★★☆ | ★★★ | ファイル名・内容・メタデータ |
locate | ★★★ | ★★☆ | ★☆☆ | ★☆☆ | ファイル名 |
用途別おすすめコマンド
findコマンドがおすすめな場面
- 特定の条件で詳細に絞り込みたいとき
- ファイルサイズや更新日時で検索したいとき
- 検索結果に対してさらに操作を加えたいとき
- 確実にすべてのファイルを調べたいとき
実際の使用例
# 1週間以内に更新された大きなファイルを探して整理
find ~/Downloads -mtime -7 -size +50M
# 古い一時ファイルを削除
find /tmp -name "*.tmp" -mtime +3 -delete
mdfindがおすすめな場面
- ファイルの中身も含めて検索したいとき
- 素早く幅広く検索したいとき
- Spotlight検索と同じ感覚で使いたいとき
- PDF や Word ファイルのテキスト内容を検索したいとき
実際の使用例
# プレゼン資料の中身に「売上」という文字があるものを探す
mdfind "textcontent:売上 AND kind:presentation"
# 今週作成された画像ファイルを探す
mdfind "date:this week AND kind:image"
locateがおすすめな場面
- ファイル名がある程度わかっていて、とにかく速く見つけたいとき
- 定期的に同じような検索を行うとき
- システム全体から広範囲に検索したいとき
実際の使用例
# 設定ファイルを素早く見つける
locate httpd.conf
# ログファイルの場所を確認
locate access.log
場面別使い分け例
ケース1:写真を整理したい
# 大きな画像ファイルを探す → find
find ~/Pictures -name "*.jpg" -size +10M
# 最近撮影した写真を探す → mdfind
mdfind "date:this month AND kind:image"
# 特定の写真ファイルを探す → locate
locate IMG_1234.jpg
ケース2:開発プロジェクトでファイル管理
# 特定の拡張子のファイルを探す → find
find ~/Projects -name "*.js" -o -name "*.css"
# コード内に特定の関数名があるファイルを探す → mdfind
mdfind "textcontent:getUserData"
# 設定ファイルを素早く見つける → locate
locate config.json
ケース3:ディスク容量の整理
# 大きなファイルを探す → find
find ~ -size +1G
# 重複ファイルを探すための準備 → mdfind
mdfind "size:>100MB"
# 一時ファイルの場所を確認 → locate
locate "*.tmp"
実践的な活用テクニック
コマンドの組み合わせ
パイプを使った結果の加工
# 検索結果をファイル名のみ表示
find ~/Documents -name "*.pdf" | xargs -n1 basename
# 検索結果を件数で確認
mdfind "kind:pdf" | wc -l
# 検索結果をファイルに保存
locate .log > log_files.txt
複数コマンドの組み合わせ
# findで詳細検索 → mdfindで内容確認
find ~/Documents -name "*報告*" -exec mdfind "textcontent:重要" {} \;
エイリアス(ショートカット)の設定
よく使う検索パターンは、エイリアスとして登録すると便利です。
~/.zshrc または ~/.bash_profile に追加
# よく使う検索のエイリアス
alias findpdf="find ~ -name '*.pdf'"
alias findbig="find ~ -size +100M"
alias findtoday="mdfind 'date:today'"
alias findpics="mdfind 'kind:image'"
検索結果の活用
検索したファイルを開く
# 検索結果を直接開く
open $(mdfind "請求書 AND kind:pdf" | head -1)
# 検索したファイルのフォルダを開く
open -R $(find ~/Desktop -name "*.docx" | head -1)
検索結果をまとめて操作
# 検索したファイルをまとめてコピー
find ~/Downloads -name "*.pdf" -exec cp {} ~/Documents/PDFs/ \;
# 検索したファイルの権限を変更
find ~/Scripts -name "*.sh" -exec chmod +x {} \;
トラブルシューティング

よくある問題と解決方法
「Permission denied」エラーが出る場合
# sudoを使って管理者権限で実行
sudo find /System -name "*.plist"
# または、エラーメッセージを非表示にする
find / -name "*.conf" 2>/dev/null
検索結果が多すぎる場合
# 結果の件数を制限
find ~/Documents -name "*" | head -20
# より具体的な条件で絞り込み
find ~/Documents -name "*report*" -mtime -30
mdfindで結果が出ない場合
# Spotlightのインデックスを再構築
sudo mdutil -a -i on
# 特定のボリュームのインデックスを確認
mdutil -s /
locateでファイルが見つからない場合
# インデックスを手動更新
sudo /usr/libexec/locate.updatedb
# locateサービスが動いているか確認
sudo launchctl list | grep locate
パフォーマンスの最適化
検索範囲を限定する
- ルートディレクトリ(/)からの検索は避ける
- 必要な範囲だけを指定する
- 除外したいディレクトリがある場合は
-prune
オプションを使用
効率的な検索パターン
# 悪い例:時間がかかる
find / -name "*.txt"
# 良い例:範囲を限定
find ~/Documents ~/Desktop -name "*.txt"
# さらに良い例:条件を追加
find ~/Documents -name "*.txt" -mtime -7
まとめ
3つのコマンドの使い分けまとめ
使い分けの基本ルール
- 詳細な条件で検索したい →
find
- 素早く幅広く検索したい →
mdfind
- ファイル名がわかっていて高速検索したい →
locate
学習の進め方
ステップ1:基本操作に慣れる(1週間)
- ターミナルの開き方と基本操作
mdfind "keyword"
から始める- 簡単な
find
コマンドを試す
ステップ2:実用的な検索を覚える(2-3週間)
- ファイル種類による絞り込み
- 日付やサイズでの検索
- よく使う検索パターンを身につける
重要なポイント
覚えておくべきこと
mdfind
はSpotlightと同じで使いやすいfind
は条件指定が柔軟で正確locate
は高速だが事前設定が必要
注意すべきこと
- 検索範囲が広すぎると時間がかかる
- システムファイルの検索には管理者権限が必要
- locateは最新のファイルが反映されない場合がある
最後に
ターミナルを使ったファイル検索は、最初は少し難しく感じるかもしれませんが、慣れてしまえばFinderよりも速く、正確に目的のファイルを見つけることができます。
特に、大量のファイルを扱う開発者やデザイナー、研究者の方には、作業効率が大幅に向上するツールとなるでしょう。
まずは mdfind
から始めて、徐々に find
の詳細な条件指定も覚えていってください。
毎日少しずつ使っていくことで、自然とコマンドが身につきます。
あなたのMacライフが、もっと効率的で快適になることを願っています!
コメント