ホーム > ファイル・ディレクトリ管理 > find

findコマンド完全ガイド

Linuxでファイルシステム内のファイルやディレクトリを検索する`find`コマンドのガイドです。さまざまな条件とアクションを組み合わせて、目的のファイルを効率的に見つけ出すことができます。

主要オプション

`find`コマンドのさまざまなオプションを組み合わせて、ファイルシステム内のファイルを検索し、処理してみましょう。

1. 基本検索

2. 時間条件

3. サイズとパーミッションの条件

4. アクション

生成されたコマンド:

コマンドを組み合わせてみてください。

説明:

`find` コマンドを実行します。

これらのオプションを組み合わせて、AIと一緒に仮想的にコマンドを実行してみてください。

論理演算子

`find`コマンドは、複数の条件を組み合わせて、より詳細な検索を実行できるように論理演算子を提供します。

主要な論理演算子 複数の条件を組み合わせる際に使用される演算子です。デフォルトではAND(`-a`)が適用されます。
演算子 説明
-and (または省略) 左と右の両方の条件が真の場合 `find . -name "*.txt" -and -size +1M`
-or 左または右のどちらかの条件が真の場合 `find . -name "*.log" -or -name "*.tmp"`
-not (または !) 条件が偽の場合 `find . -not -name "*.txt"`
( ) 条件のグループ化(エスケープが必要) `find . \( -name "*.txt" -or -name "*.doc" \)`

演算子の優先順位

`find`コマンドの演算子は、通常、アクション(Action)が条件(Expression)より後に評価されます。また、条件内では`()`を使用して優先順位を明示的に指定できます。括弧を使用する場合は、シェルで特別な意味を持つため、バックスラッシュ(`\`)でエスケープする必要があります。

使用例

`find`コマンドの実用的な使用例を通して、ファイル検索と管理を練習してみましょう。

現在のディレクトリで '.log'拡張子を持つすべてのファイルを検索

find . -name "*.log"

現在の場所で`.log`で終わるすべてのファイルを検索します。

50MBより大きいファイルを検索

find /var -size +50M

システム上の`/var`ディレクトリ以下で、サイズが50MBを超えるすべてのファイルを検索します。

7日以内に変更された 'conf' ファイルを検索

find . -name "*.conf" -mtime -7

現在のディレクトリで、7日以内に変更された`.conf`ファイルを検索します。

アクセス権限が777のすべてのディレクトリを検索

find / -type d -perm 777

システム全体で権限が777に設定されているディレクトリを検索し、セキュリティ上のリスクを確認します。

古い '.tmp' ファイルを削除

find /tmp -name "*.tmp" -mtime +30 -delete

30日以上前のすべての`.tmp`ファイルを`/tmp`ディレクトリで検索して削除します。

見つかったファイルに対して特定のコマンドを実行(chmod)

find . -name "*.sh" -exec chmod 755 {} \;

現在のディレクトリで`.sh`拡張子を持つすべてのファイルに実行権限(755)を付与します。

特定のユーザーが所有するファイルのうち、1GBより大きいファイルを検索

find /home -user user1 -size +1G

`/home`ディレクトリで`user1`が所有し、サイズが1GBを超えるファイルを検索します。


同じカテゴリのコマンド