12月 31, 2020
admin
find
コマンドは、Linuxシステム管理者の兵器庫で最も強力なツールの一つです。 この検索のためのファイルやディレクトリのディレクトリ階層に基づき与えられたユーザの表現が可能なユーザ指定されたアクションの各マッチファイルです。
find
コマンドを使用すると、権限、タイプ、日付、所有権、サイズなどに基づいてファイルとディレクトリを検索できます。, また、grep
やsed
などの他のツールと組み合わせることもできます。
findコマンド構文#
find
コマンドの一般的な構文は次のとおりです。
options
属性は、シンボリックリンク、デバッグオプション、および最
path...
属性は、findがファイルを検索する開始ディレクトリまたはディレクトリを定義します。,
expression
属性は、オプション、検索パターン、および演算子で区切られたアクションで構成されています。
ディレクトリ内のファイルを検索するには、find
コマンドを呼び出すユーザーには、そのディレクトリに対する読み取り権限が必要です。
次の例を見てみましょう。
名前でファイルを検索#
名前でファイルを検索することは、おそらくfind
コマンドの最も一般的な使, 名前でファイルを検索するには、-name
オプションの後に検索するファイルの名前を使用します。
たとえば、document.pdf
ディレクトリ内の/home/linuxize
という名前のファイルを検索するには、次のコマンドを使用します。
大文字と小文字を区別しない検索を実行するには、-name
オプションを-iname
:
上記のコマンドは”ドキュメント”と一致します。pdf”、”ドキュメント。pdf”。.など。,
拡張子でファイルを検索#
拡張子でファイルを検索することは、名前でファイルを検索することと同じです。 たとえば、.log.gz
/var/log/nginx
ディレクトリ内の.log.gz
で終わるすべてのファイルを検索するには、次のように入力します。
パターンを引用するか、アスタリスク*
バックスラッシュ付きのシンボル\
ワイルドカード文字を使用するときにシェルによって解釈されないようにします。,正規表現に一致しないすべてのファイルを検索するには*.log.gz
-not
オプションを使用できます。 たとえば、*.log.gz
で終わらないすべてのファイルを検索するには、次のように使用します。
タイプ別にファイルを検索#
通常のファイル、ディレクトリ、シンボリックリンクなどの特定のファイルタイプを検索する必要がある場合があります。 Linuxでは、すべてがファイルです。,div>:named pipe(FIFO)
s
:socket
たとえば、現在の作業ディレクトリ内のすべてのディレクトリを検索するには、次のように使用します。
一般的な例は、webサイトファイルのアクセス許可を644
に再帰的に変更し、ディレクトリのアクセス許可を755
chmod
コマンドを使用します。
サイズでファイルを検索#
ファイルサイズに基づいてファイルを検索するには、-size
パラメータ,9fdb538a6b”>
:512バイトブロック(デフォルト)
c
:バイト
w
:二バイトワード
k
:キロバイト
M
:メガバイト
G
:ギガバイト
次のコマンドは、1024
/tmp
ディレクトリ内のすべてのファイルを検索します。
find
コマンドを使用すると、指定したサイズよりも大きいか小さいファイルを検索することもできます。,
次の例では、現在の作業ディレクトリ内の1MB
より小さいすべてのファイルを検索します。 サイズ値の前にマイナス-
シンボル:
1MB
より大きいサイズのファイルを検索する場合は、プラス+
シンボル:
サイズ範囲内のファイルを検索することもできます。, 次のコマンドは、1
と2MB
の間のすべてのファイルを検索します。
変更日付でファイルを検索#
find
コマンドは、最終変更、アクセス、または変更時刻に基づいてファイルを検索することもできます。
サイズで検索する場合と同じように、”より大きい”または”より小さい”にはプラス記号とマイナス記号を使用します。
数日前に、dovecot設定ファイルのいずれかを変更しましたが、どちらを忘れてしまったとしましょう。, /etc/dovecot/conf.d
ディレクトリの下にあるすべてのファイルを簡単にフィルタリングできます。.conf
で終わり、過去五日間に変更されました。
-daystart
オプションを使用して、変更日に基づいてファイルをフィルタリングする別の例を次に示します。, 以下のコマンドは、/home
ディレクトリ内の30
以上前に変更されたすべてのファイルを一覧表示します。
パーミッションによるファイルの検索#
-perm
オプションを使用すると、ファイルのパーミッションに基づいてファイルを検索できます。,
たとえば、775
/var/www/html
ディレクトリ内の
数値モードの前にマイナス-
またはスラッシュ/
。
スラッシュ/
プレフィックスとして使用される場合、少なくとも一つのカテゴリ(ユーザー、グループ、またはその他)には、一致するファイルに対して少なくともそれぞれのビットが設定されていなければなりません。,
次のコマンド例を考えてみましょう。
上記のコマンドは、ユーザー、グループ、または他のユーザーに設定された読み取り権限を持つすべてのファイル
マイナス-
プレフィックスとして使用される場合、ファイルが一致するには、少なくとも指定されたビットを設定する必要があります。, 次のコマンドは、所有者およびグループに対する読み取りおよび書き込み権限を持ち、他のユーザーが読み取り可能なファイルを検索します。
所有者によるファイルの検索#
特定のユーザーまたはグループが所有するファイルを検索するには、-user
および-group
オプションを使用します。
たとえば、ユーザーが所有するすべてのファイルとディレクトリを検索するにはlinuxize
、次のように実行します。
以下は実世界の例です。, ユーザーが所有するすべてのファイルを検索したいとしましょうwww-data
一致したファイルの所有権をwww-data
からnginx
:
ファイルの検索と削除#
一致するファイルをすべて削除するには、-delete
一致式の最後までのオプション。
このオプションは、削除するファイルと結果が一致すると確信している場合にのみ使用してください。, -delete
オプションを使用する前に、一致したファイルを印刷することをお勧めします。
たとえば、.temp
で終わるすべてのファイルを/var/log/
から削除するには、次のようにします。
-delete
オプション
find
コマンドは式として評価され、最初に
-delete
オプションを追加すると、コマンドは指定した開始点以下のすべてを削除します。,ディレクトリに関しては、
find
空のディレクトリのみを削除できます。
rmdir
と同じです。
結論#
さまざまなオプションと条件でfind
コマンドを使用する方法を示しました。
この記事では、Linuxシステム上のファイルを見つける方法についての基本的な理解を提供する必要があります。 また、find
マニュアルページにアクセスし、find
コマンドの他のすべての強力なオプションについて読むこともできます。