- 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
コメント