- Linux でファイルの検索がしたい!
このような方に向けて書きました。
Linux でファイル検索をしたいときは、find
コマンドを使うのが効率的です。
本記事ではファイルを素早く見つけるための基本的な方法をお伝えします。
find コマンドでファイルやディレクトリを探し出そう!
findコマンドの使い方を基礎から解説します。
カレントディレクトリより下を検索する方法
現在のディレクトリよりも下の階層を対象に、特定のファイル名で検索をかけることができます。
コマンドは以下の通りです。
find . -name "filename.txt"
-name
は指定したパターンに一致するファイルやディレクトリを検索するコマンドです。
特定のディレクトリを対象に検索する方法
特定のディレクトリを対象に検索する場合、.
の代わりにディレクトリを指定します。
find /home/user -name "filename.txt"
上記のコマンドは、/home/user
ディレクトリのみを対象にfilename.txt
を探したい場合のものです。
.
は現在のディレクトリを表します。
完全一致と部分一致
*
(アスタリスク)をつけると、部分一致検索ができます。
# "file" で始まるファイルを検索
find /home/user -name "file*"
# "name" で終わるファイルを検索
find /home/user -name "*name"
# "file" を含むファイルを検索
find /home/user -name "*file*"
アスタリスクがワイルドカードの役割を果たすので、上記のようにすることで目的のファイルを効率的に見つけることができます。
大文字・小文字を区別せずに検索する
大文字・小文字を区別せずに検索するには-iname
オプションをつけます。
find /home/user -iname "filename.txt"
これでfilename.txt
はもちろん、Filename.TXT
なども検索に引っかかるようになります。
特定の種類のファイルのみを検索対象にする
-typeオプションをつけると、特定のファイルタイプのみを検索対象にできます。
find . -type [ファイルタイプ]
上記のファイルタイプには、以下のようなものが入ります。
ファイルタイプ | 内容 |
---|---|
f | 通常のファイル |
d | ディレクトリ |
l | シンボリックリンク |
c | キャラクターデバイスファイル |
b | ブロックデバイスファイル |
p | 名前つきパイプ(FIFO) |
s | ソケット |
-type
に指定可能な形式ファイルの最終更新日時を基準に検索
-mtime
オプションをつけると、最終更新日で検索がかけられます。
find . -mtime [日数]
[日数]
には、以下のようなものを入れることができます。
-mtime n | 最終更新がn 日前のファイルを検索 |
-mtime +n | 最終更新がn 日より前のファイルを検索 |
-mtime -n | 最終更新がn 日以内のファイルを検索 |
-mtime
に指定可能な形式範囲指定することも可能です。
例えば最終更新が5日以内で、かつ2日より前のファイルを検索する場合は以下です。
find /home/user -mtime -5 -mtime +2
コメント