Linuxのfindコマンドでサブディレクトリのみを検索する方法!再帰的検索の使い方

Linuxのfindコマンドを使ってファイルを検索する際、サブディレクトリのみを取得したい場合があります。例えば、大量のディレクトリ構造の中から特定のサブディレクトリだけを一覧表示したり、特定の条件に合致するサブディレクトリのみを抽出したい場合に役立ちます。しかし、findコマンドのオプション設定が分かりにくく、意図した検索結果を得られないことも少なくありません。本記事では、findコマンドを使ってサブディレクトリのみを検索する方法を、初心者にも分かりやすく解説します。

目次

Linuxのfindコマンドとは?

findコマンドは、指定したディレクトリ内でファイルやディレクトリを検索できるLinuxの基本コマンドの一つです。ファイル名や種類、タイムスタンプなどの条件を指定して検索を行うことができます。例えば、特定の拡張子を持つファイルだけを探したり、特定の日付以降に作成されたディレクトリのみを検索するなど、多彩な用途に対応しています。

findコマンドの基本構文

find [検索開始ディレクトリ] [検索条件] [アクション]
  • 検索開始ディレクトリ:検索を開始するフォルダのパス(例:/home/user
  • 検索条件-type d(ディレクトリのみ)、-name "*.txt"(特定の名前のファイル)など
  • アクション-delete(削除)、-exec(特定のコマンドを実行)など

サブディレクトリのみを検索する方法

基本的なfindコマンドの使い方

サブディレクトリのみを検索する場合は、-type d オプションを使用します。

find /path/to/search -type d

このコマンドを実行すると、指定したディレクトリ以下のすべてのサブディレクトリを再帰的に検索し、一覧表示します。

具体例:ホームディレクトリ内の全サブディレクトリを検索

find ~/ -type d

これにより、自分のホームディレクトリ内のすべてのディレクトリが表示されます。

特定のディレクトリ配下のサブディレクトリのみを取得

特定の階層のサブディレクトリのみを検索する

深い階層のディレクトリがある場合、特定の階層にあるサブディレクトリのみを取得したいことがあります。その場合は -mindepth-maxdepth を組み合わせて使用します。

find /path/to/search -mindepth 1 -maxdepth 1 -type d

このコマンドを実行すると、指定したディレクトリの直下にあるサブディレクトリのみを一覧表示します。

具体例:/var/log/ の直下のディレクトリのみを表示

find /var/log -mindepth 1 -maxdepth 1 -type d

特定のディレクトリを除外して検索する

特定のディレクトリを除外して検索したい場合は ! -name オプションを使用します。

find /path/to/search -type d ! -name "exclude-dir"

具体例:/home/user/.git ディレクトリを除外

find /home/user -type d ! -name ".git"

送信取り消しをiPhoneで確認する方法

iPhoneで誤って送信したメールを取り消す方法についても解説します。

Gmailアプリでの送信取り消し

  1. メール送信直後に「取り消し」ボタンが表示される。
  2. すぐにタップすると送信をキャンセルできる。
  3. 取り消し後、下書きに保存されるため、再編集が可能。

iPhoneの標準メールアプリでの送信取り消し

  • iOS 16以降では、送信後10秒以内なら「送信を取り消す」ボタンが表示される。
  • 送信取り消し後は、メールを再編集して再送信することも可能。

まとめ

本記事では、Linuxのfindコマンドを使ってサブディレクトリのみを検索する方法を詳しく解説しました。

基本的な検索方法

  • find /path/to/search -type d でサブディレクトリのみを検索できる。

検索結果を制御する方法

  • -mindepth-maxdepth を組み合わせて特定階層のサブディレクトリを取得。
  • ! -name を使用して特定のディレクトリを除外。

実用的な検索例

  • find ~/ -type d でホームディレクトリ内のサブディレクトリを検索。
  • find /var/log -mindepth 1 -maxdepth 1 -type d で特定のディレクトリ内のみを検索。
  • find /home/user -type d ! -name ".git" で特定のディレクトリを除外。

また、iPhoneでの送信取り消し方法についても解説しました。findコマンドを活用することで、Linux環境でのディレクトリ検索が効率化され、より素早く必要なデータにアクセスできるようになります。ぜひ活用してみてください!

目次