Linuxでfindコマンドを使用してファイルを見つける方法

Find Feature

Linuxのfindコマンドは、Linuxシステムで最も重要で便利なコマンドの1つです。名前が示すように、設定した条件や変数に基づいて、Linux PC上のファイルを見つけることができます。findコマンドを使用して、権限、ユーザー、グループ、ファイルタイプ、日付、サイズ、その他の可能な基準でファイルを見つけることができます。ここでは、findコマンドを使用してLinuxでファイルを見つける方法を示します。

findコマンドは、ほとんどのLinuxディストリビューションにデフォルトで用意されているため、パッケージをインストールする必要はありません。

さらに読む: Linuxでファイルを検索するためのfind、locate、which、whereisコマンドの使用

現在のディレクトリ内で名前でファイルを見つける

ファイルを検索する最も明白な方法は、名前で検索することです。現在のディレクトリで名前でファイルを見つけるには、次のコマンドを実行します。

find . -name photo.png

Find Photo

大文字と小文字の両方を含む名前のファイルを見つけたい場合は、次のコマンドを実行します。

find . -iname photo.png

Find Iname Photo

ルートディレクトリでファイルを見つけたい場合は、検索をsudoでプレフィックスし、これにより必要なすべての権限が与えられ、/記号がLinuxにルートディレクトリで検索するよう指示します。最後に、-print式は検索結果のディレクトリを表示します。Gzipを探している場合は、次のように入力します。

sudofind/-namegzip-print

Find Gzip

さらに読む: Linuxで大きなファイルを見つける方法

特定のディレクトリ内でファイルを見つける

「/home」のような特定のディレクトリ内でファイルを見つけたい場合は、次のコマンドを実行します。

find/home -name filename.txt

「/home」ディレクトリ内で「.txt」拡張子のファイルを見つけたい場合は、次のコマンドを実行します。

find/home -name"*.txt"

「/home」と「/opt」のような複数のディレクトリ内で「test.txt」という名前のファイルを見つけたい場合は、次のコマンドを実行します。

find/home /opt -name test.txt

「/home」ディレクトリ内の隠しファイルを見つけたい場合は、次のコマンドを実行します。

find/home -name".*"

「test.txt」という名前の単一のファイルを見つけて削除するには、次のコマンドを実行します。

find/home -type f -name test.txt -execrm-f{}

「/opt」ディレクトリ内のすべての空のファイルを見つけるには、次のコマンドを実行します。

find/opt -type f -empty

名前でディレクトリを見つける

「/home」ディレクトリ内で「testdir」という名前のすべてのディレクトリを見つけたい場合は、次のコマンドを実行します。

find/home -type d -name testdir

「/home」内のすべての空のディレクトリを見つけるには、次のコマンドを実行します。

find/home -type d -empty

特定の権限を持つファイルを見つける

findコマンドは、permオプションを使用して特定の権限を持つファイルを見つけるために使用できます。

「/home」ディレクトリ内で権限が「777」のすべてのファイルを見つけるには、次のコマンドを実行します。

find/home -type f -perm 0777 -print

権限が「777」でないすべてのファイルを見つけるには、次のコマンドを実行します。

find . -type f !-perm777

すべての読み取り専用ファイルを見つけるには、次のコマンドを実行します。

find/home -perm/u=r

すべての実行可能ファイルを見つけるには、次のコマンドを実行します。

find/home -perm/a=x

権限が「553」のすべてのスティッキービットが設定されたファイルを見つけるには、次のコマンドを実行します。

find/home -perm1553

すべてのSUID設定ファイルを見つけるには、次のコマンドを実行します。

find/home -perm/u=s

権限が「777」のすべてのファイルを見つけて、その権限を「700」に変更するには、次のコマンドを実行します。

find/home -type f -perm 0777 -print-execchmod700{} ;

日付と時間に基づいてファイルとディレクトリを見つける

「/opt」内のすべてのファイルで、20日前に変更されたものを見つけるには、次のコマンドを実行します。

find/opt -mtime20

「/opt」内のすべてのファイルで、20日前にアクセスされたものを見つけるには、次のコマンドを実行します。

find/opt -atime20

「/opt」内のすべてのファイルで、30日以上前に変更され、50日未満のものを見つけるには、次のコマンドを実行します。

find/opt -mtime +30-mtime-50

「/opt」内のすべてのファイルで、過去2時間以内に変更されたものを見つけるには、次のコマンドを実行します。

find/opt -cmin-120

サイズに基づいてファイルとディレクトリを見つける

「/home」ディレクトリ内のすべての10MBファイルを見つけるには、次のコマンドを実行します。

find/home -size 10M

「/home」ディレクトリ内のすべてのファイルで、10MBより大きく、50MB未満のものを見つけるには、次のコマンドを実行します。

find/home -size +10M -size-50M

「/home」ディレクトリ内のすべての「.mp4」ファイルで、10MBを超えるものを見つけて、単一のコマンドで削除するには、次のコマンドを実行します。

find/home -type f -name*.mp4 -size +10M -execrm{} ;

ご覧のとおり、findコマンドは、システムを管理し、ディレクトリを検索してファイルを見つけ、一般的にLinuxの仮想ディレクトリツリーを整理するために非常に便利です。このLinuxの記事を楽しんだ場合は、ファイルを安全に転送するためのscpコマンドの使用方法、ターミナルでのファイルマネージャーとしてのnnnの使用方法、壊れたパッケージを修正する方法など、他のLinuxコンテンツもチェックしてください。