0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Bashコマンド Find 検索 フィルター

Posted at

findコマンドは、指定されたディレクトリツリー内からファイルやディレクトリを検索するための強力なツールです。

基本構文と主要オプション

find [検索開始ディレクトリ] [オプション] [アクション]

オプション 説明
-name ファイル名を指定して検索します。ワイルドカード(*, ?など)が使えます。
-type ファイルの種類で検索します。f (通常ファイル)、d (ディレクトリ) などがあります。
-size ファイルサイズを指定して検索します。+はより大きい、-はより小さいを意味します。例: +1M (1MBより大きい)
-mtime 最終更新時間で検索します。+1は1日以上前、-1は1日以内を意味します。
-user 指定したユーザーが所有するファイルを検索します。
-maxdepth 検索する階層の最大深度を指定します。1はカレントディレクトリのみ。
-exec 検索結果に対してコマンドを実行します。{}で検索結果のパスを参照し、;でコマンドの終了を示します。

使用例

ファイル名で検索

現在のディレクトリ以下から、report.txtという名前のファイルを検索します。


find . -name "report.txt"

複数のファイル名で検索

現在のディレクトリ以下から、.logか.txtで終わるファイルを検索します。


find . \( -name "*.log" -o -name "*.txt" \)

\( ... \)-o(OR)を組み合わせることで、複数の条件を論理的に検索できます。

ディレクトリを検索

現在のディレクトリ以下から、logsという名前のディレクトリを検索します。


find . -type d -name "logs"

2日以内に更新されたファイルを検索

/var/wwwディレクトリ以下で、2日以内に最終更新されたすべてのファイルを検索します。


find /var/www -mtime -2

特定のサイズより大きいファイルを検索

現在のディレクトリ以下から、10MBより大きいファイルを検索します。


find . -size +10M

検索結果を削除

現在のディレクトリ以下から、.bakで終わるファイルを検索して削除します。


find . -name "*.bak" -exec rm {} \;

rmコマンドを実行する前に、find . -name "*.bak"で検索結果を確認することをお勧めします。

検索結果に対して複数のコマンドを実行

現在のディレクトリ以下から、.txtファイルを検索し、ls -lで詳細情報を表示します。


find . -name "*.txt" -exec ls -l {} \;

findコマンドは非常に柔軟で強力なため、これらのオプションやアクションを組み合わせることで、複雑な検索要件にも対応できます。


実際の使用は
こちらのサイト制作時にテキスト検索・日時フィルター・サイズフィルターをかけてファイル検索などをしています。
その他、日々の業務のファイル検索に活用しています。

1891年 ヴィクトリア朝のシャーロックホームズの世界に3名の生成AIが突如現れる。
現代社会の不可思議なビジネス課題をこの3名の生成AIが謎に迫る

  • ビジネスコンテンツ × ミステリー × 生成AIの世界観をお楽しみください。

  • ROI探偵事務所の事件で使用した知識をこちらに掲載しています

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?