【初心者向け】Macでコマンドによるファイル検索をマスターする|find・mdfind・locateの使い分け

Mac

「Finderでファイルを探すのに時間がかかる…」
「大量のファイルから目的のものを見つけるのが大変…」
「もっと効率的にファイル検索をしたい」

そんなMacユーザーにおすすめなのが、ターミナルを使ったファイル検索コマンドです。

Finderでの検索も便利ですが、コマンドを使えばより速く、より正確に、より柔軟にファイルを見つけることができます。

特に、大量のファイルがある環境や、複雑な条件での検索では、その威力を実感できるでしょう。

この記事では、Macで使える3大ファイル検索コマンド「find」「mdfind」「locate」の基本的な使い方と使い分け方を、初心者にもわかりやすく解説します。

この記事で身につくこと

  • ターミナルを使った効率的なファイル検索方法
  • 3つのコマンドの特徴と使い分け
  • 実際の作業で役立つ具体的な検索例
  • コマンド検索のメリットとコツ
スポンサーリンク

ターミナルの基本的な使い方

ターミナルを開く方法

まず、ターミナルを開いてみましょう。

方法1:Spotlightを使う

  1. ⌘ + スペース でSpotlightを開く
  2. 「ターミナル」と入力
  3. Enterキーで起動

方法2:アプリケーションフォルダから

  1. Finderで「アプリケーション」フォルダを開く
  2. 「ユーティリティ」フォルダをダブルクリック
  3. 「ターミナル」をダブルクリック

基本的な操作方法

コマンド入力の基本

  • コマンドを入力して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つのコマンドの使い分けまとめ

使い分けの基本ルール

  1. 詳細な条件で検索したいfind
  2. 素早く幅広く検索したいmdfind
  3. ファイル名がわかっていて高速検索したいlocate

学習の進め方

ステップ1:基本操作に慣れる(1週間)

  • ターミナルの開き方と基本操作
  • mdfind "keyword" から始める
  • 簡単な find コマンドを試す

ステップ2:実用的な検索を覚える(2-3週間)

  • ファイル種類による絞り込み
  • 日付やサイズでの検索
  • よく使う検索パターンを身につける

重要なポイント

覚えておくべきこと

  • mdfind はSpotlightと同じで使いやすい
  • find は条件指定が柔軟で正確
  • locate は高速だが事前設定が必要

注意すべきこと

  • 検索範囲が広すぎると時間がかかる
  • システムファイルの検索には管理者権限が必要
  • locateは最新のファイルが反映されない場合がある

最後に

ターミナルを使ったファイル検索は、最初は少し難しく感じるかもしれませんが、慣れてしまえばFinderよりも速く、正確に目的のファイルを見つけることができます。

特に、大量のファイルを扱う開発者やデザイナー、研究者の方には、作業効率が大幅に向上するツールとなるでしょう。

まずは mdfind から始めて、徐々に find の詳細な条件指定も覚えていってください。
毎日少しずつ使っていくことで、自然とコマンドが身につきます。

あなたのMacライフが、もっと効率的で快適になることを願っています!

コメント

タイトルとURLをコピーしました