Linuxのfindコマンド入門:基本構文から実践的な使い方まで徹底解説
この記事では、Linuxのfindコマンドの基本的な使い方を、実務で役立つ具体例とともにわかりやすく解説します。
findコマンドとは?
ここ数年でハードディスクの価格はますます低下し、パソコンにギガバイト単位、場合によってはテラバイト級のデータを保存することが当たり前になりました。データが増えるほど、「目的のファイルを素早く見つける能力」の重要性は高まります。Linuxには、まさにそのためのコマンドラインツールが用意されており、その名もずばり「find」です。本記事では、findコマンドの基本機能を紹介し、すぐに使いこなせるようサポートします。
基本構文
findコマンドの基本的な書式は以下の通りです。
find [検索対象のディレクトリ] [検索条件]
シンプルな使用例
まずは最も基本的な例から見てみましょう。
$ find -name "*.txt"
./Documents/articles/doctor_dolittle.txt
./Documents/articles/Installing_Redhat_Linux.txt
./Desktop/todo_list.txt
このコマンドは、カレントディレクトリとそのすべてのサブディレクトリを対象に、拡張子が「.txt」のファイルを検索します。
ここで注目すべき点は、findの引数はすべて省略可能だということです。つまり、オプションを何も指定せずに「find」とだけ入力してEnterキーを押しても、カレントディレクトリ以下の全ファイル一覧が出力されます。ぜひ一度試してみてください。
複数のディレクトリを検索する
複数のディレクトリをまとめて検索したい場合は、ディレクトリを順に並べて指定します。
$ find /home/hobbes/ /home/calvin/ -name "*.txt"
/home/calvin/Documents/articles/doctor_dolittle.txt
/home/calvin/Desktop/todo_list.txt
/home/hobbes/Desktop/articles.txt
/home/hobbes/data_logging.txt
権限エラーを非表示にするテクニック
検索を実行すると、アクセス権限不足によるエラーメッセージが表示されることがあります。そんなときは、エラー出力を「/dev/null」に送ると、結果がぐっと見やすくなります。
$ find /home/hobbes/ /home/calvin/ -name "*.txt" 2>/dev/null
大文字・小文字を区別せずに検索する
findの検索はデフォルトで大文字・小文字が区別されるため、「picasso」で検索しても「Picasso」はヒットしません。これを回避するには「-iname」オプションを使用します。
$ find /home/calvin/ -iname "picasso"
./Documents/images/picasso.png
./Documents/articles/The_artist_Picasso.doc
更新日時でファイルを検索する
findには便利な応用テクニックが多数あります。たとえば、直近45分以内に更新されたファイルを時間ベースで検索できます。
$ find /home/calvin/ -mmin -45
./hello.txt
./artwork.jpg
同様に、15分〜25分前に更新されたファイルだけを絞り込むことも可能です。
$ find -mmin +15 -mmin -25
検索の深さを制御する
サブディレクトリをどこまで掘り下げて検索するかを指定することもできます。次のコマンドは、指定ディレクトリの上位2階層までのみを対象に、拡張子「.txt」のファイルを探します。
$ find /home/calvin/ -maxdepth 2 -name "*.txt"
逆に、2階層目以降(下位)だけを検索したい場合は「-mindepth」を使います。
$ find /home/calvin/ -mindepth 2 -name "*.txt"
./artexpo.txt
./Documents/project.txt
検索結果をログファイルに保存する
他の多くのコマンドと同様に、出力をファイルにリダイレクトできます。検索結果を記録しておきたい場合は、次のようにします。
$ find /home/calvin/ -name "*.txt" > /tmp/search.log
まとめ
findコマンドは、慣れてしまえば非常に強力なツールです。その機能を網羅すれば1冊の本が書けるほど奥が深く、ここで紹介したのはほんの一例にすぎません。さらに詳しく知りたい方は、manページ(man find)を参照してみてください。「findと置換」を組み合わせた応用テクニックに挑戦してみるのもおすすめです。
-
【findコマンド徹底解説】Linuxでファイルやディレクトリを柔軟に検索する方法
Linuxのfindコマンドは、Linuxシステムにおいて最も重要かつ便利なコマンドの一つです。その名の通り、自分で設定したさまざまな条件や変数に基づいて、Linuxマシン上のファイルを検索できます。パーミッション、ユーザー、グループ、ファイルタイプ、日付、サイズなど、多彩な条件を組み合わせて目的のファイルを見つけられるのが特徴です。この記事では、findコマンドを使ってLinux上でファイルを検索する方法を詳しく解説します。 findコマンドはほとんどのLinuxディストリビューションにデフォルトで搭載されているため、追加でパッケージをインストールする必要はありません。 カレントディレクト
-
LinuxでVirtual Machine Managerを使い始める方法|インストールから仮想マシン作成まで徹底解説
Virtual Machine Manager(virt-manager)は、Linuxデスクトップで利用できるハイパーバイザーの中でも特に評価が高いソフトウェアの一つです。QEMU/KVMを基盤とした仮想化技術を採用しており、高いパフォーマンスと充実した機能を両立しています。このツールを活用すれば、Linuxデスクトップ上の仮想化環境を一段上のレベルへ引き上げることができます。 Virtual Machine Managerのインストール方法 インストールはとても簡単で、ターミナルで以下のコマンドを実行するだけです。 # Debian/Ubuntuの場合 sudo apt instal