主要オプション
`find`コマンドのさまざまなオプションを組み合わせて、ファイルシステム内のファイルを検索し、処理してみましょう。
1. 基本検索
2. 時間条件
3. サイズとパーミッションの条件
4. アクション
生成されたコマンド:
コマンドを組み合わせてみてください。
説明:
`find` コマンドを実行します。
これらのオプションを組み合わせて、AIと一緒に仮想的にコマンドを実行してみてください。
論理演算子
`find`コマンドは、複数の条件を組み合わせて、より詳細な検索を実行できるように論理演算子を提供します。
演算子 | 説明 | 例 |
---|---|---|
-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を超えるファイルを検索します。