Linuxでディレクトリ内の指定パターンに一致しないファイルを検索する方法

Linuxシステムにおいて、ディレクトリ内で特定のパターンに一致しないファイルを検索する場合があります。この記事では、Linuxの`find`コマンドを使用してこのようなタスクを行う方法を紹介します。具体的なコード例、その詳細解説、そして応用例を4つも提供しています。

目次

基本の`find`コマンドの使い方

Linuxでファイルを検索する際には`find`コマンドがよく使用されます。基本的な使い方を以下に示します。

# /home/userディレクトリで.txt拡張子のファイルを検索
find /home/user -name "*.txt"

パターンに一致しないファイルを検索する

`find`コマンドには`-not`オプションがあり、これを使用するとパターンに一致しないファイルを検索できます。

# /home/userディレクトリで.txt拡張子以外のファイルを検索
find /home/user -not -name "*.txt"

このコマンドで、`/home/user`ディレクトリとそのサブディレクトリにある`.txt`拡張子でない全てのファイルとディレクトリが列挙されます。

応用例

特定のディレクトリを除外して検索

特定のディレクトリを検索結果から除外することも可能です。

# /home/userディレクトリで、'backup'ディレクトリを除外して.txt以外のファイルを検索
find /home/user -not -path "/home/user/backup/*" -not -name "*.txt"

特定の日付以前または以後のファイルを検索

# /home/userディレクトリで、7日以上前に変更された.txt以外のファイルを検索
find /home/user -not -name "*.txt" -mtime +7

特定のサイズより大きい、または小さいファイルを検索

# /home/userディレクトリで、1MBより大きい.txt以外のファイルを検索
find /home/user -not -name "*.txt" -size +1M

権限に基づいてファイルを検索

# /home/userディレクトリで、読み取り可能な.txt以外のファイルを検索
find /home/user -not -name "*.txt" -readable

まとめ

Linuxの`find`コマンドを使えば、ディレクトリ内で特定のパターンに一致しないファイルを効率よく検索できます。今回は基本的な使い方から、特定のディレクトリを除外したり、ファイルの日付やサイズ、権限によって絞り込む応用例までを解説しました。

created by Rinker
オライリージャパン
¥3,080 (2024/09/19 13:04:56時点 Amazon調べ-詳細)

コメント

コメントする

目次