Linuxのコマンドラインからファイルを検索する方がはるかに簡単で高速です。 アクセスと変更の日時に基づいてファイルを検索して並べ替える方法については、すでに説明しました。 。今日は、LinuxおよびUnixライクなオペレーティングシステムでのアクセス許可に基づいてファイルを検索する方法を説明します。
このガイドでは、 file1
という3つのファイルを作成します。 、 file2
およびfile3
権限あり777
、 766
、 655
それぞれostechnix
という名前のフォルダにあります 。
$ mkdir ostechnix && cd ostechnix/
$ install -b -m 777 /dev/null file1
$ install -b -m 766 /dev/null file2
$ install -b -m 655 /dev/null file3
次に、権限に基づいてファイルを検索します。
アクセス許可に基づいてファイルを検索するための一般的な構文は次のとおりです。
$ find -perm mode
MODE
数値のいずれかを使用できます または8進数 権限(777
など 、666
、...など)またはシンボリックパーミッション(u=x
など) 、a=r+x
。
MODE
を指定できます 以下に示す3つの異なる方法で。
- プレフィックスなしでモードを指定すると、正確のファイルが検索されます 権限。
-
"-"
を使用する場合 モードのプレフィックスを付けるには、少なくともファイルには、正確な権限ではなく、指定された権限が必要です。 -
"/"
を使用する場合 プレフィックス、所有者、グループ、またはその他のいずれかがファイルへのアクセス許可を持っている必要があります。
理解を深めるために、いくつかの例を挙げて説明させてください。
まず、数値のアクセス許可に基づいてファイルを検索します。
数値(8進数)のアクセス許可に基づいてファイルを検索します
次に、次のコマンドを実行します。
$ find -perm 777
このコマンドは、正確に777の権限を持つファイルを検索します 現在のディレクトリにあります。
上記の出力でわかるように、file1は正確な777権限を持っている唯一のものです。 。
それでは、"-"
を使用しましょう プレフィックスを付けて、何が起こるかを確認します。
$ find -perm -766
ご覧のとおり、上記のコマンドは2つのファイルを表示します。 766
を設定しました file2
へのアクセス許可 、しかしこのコマンドは2つのファイルを表示します、なぜですか?なぜなら、ここでは"-"
を使用したからです。 プレフィックス。これは、このコマンドが、ファイル所有者が読み取り/書き込み/実行権限を持ち、ファイルグループメンバーが読み取り/書き込み権限を持ち、他のすべても読み取り/書き込み権限を持っているすべてのファイルを検索することを意味します。この場合、file1
およびfile2
この基準を満たしています。つまり、ファイルは正確な766権限を持っている必要はありません。この766権限に該当するファイルが表示されます。
次に、"/"
を使用します プレフィックスを付けて、何が起こるかを確認します。
$ find -perm /222
上記のコマンドは、誰か(所有者、グループ、または他の誰か)が書き込み可能なファイルを検索します。別の例を示します。
$ find -perm /220
このコマンドは、所有者またはグループのいずれかが書き込み可能なファイルを検索します。つまり、ファイルは書き込み可能である必要はありません 所有者とグループの両方 一致する; どちらか します。
ただし、"-"
を使用して同じコマンドを実行した場合 プレフィックスを付けると、所有者とグループの両方が書き込み可能なファイルのみが表示されます。
$ find -perm -220
次のスクリーンショットは、これら2つのプレフィックスの違いを示しています。
すでに述べたように、ファイルのアクセス許可を表すために記号表記を使用することもできます。
次の例では、 uなどの記号表記を使用しています。 (ユーザーの場合)、 g (グループ)、 o (その他)。 aという文字を使用することもできます これらの3つのカテゴリすべてを表します。権限は、 rの文字を使用して指定できます (読む)、 w (書き込み)、 x (実行可能)。
たとえば、グループが書き込みのファイルを検索するには 許可、実行:
$ find -perm -g=w
上記の例でわかるように、file1
およびfile2
グループを書く 許可。 "="
のいずれかを使用できることに注意してください または"+"
記号表記の演算子。たとえば、次の2つのコマンドは同じことを行います。
$ find -perm -g=w $ find -perm -g+w
ファイル所有者が書き込み可能なファイルを見つけるには、次のコマンドを実行します。
$ find -perm -u=w
すべての人(ファイルの所有者、グループ、その他すべての人)が書き込み可能なファイルを見つけるには、次のコマンドを実行します。
$ find -perm -a=w
両方で書き込み可能なファイルを検索するには 彼らの所有者 とそのグループ 、次のコマンドを使用します:
$ find -perm -g+w,u+w
上記のコマンドは、"find -perm -220"
と同等です。 コマンド。
どちらかで書き込み可能なファイルを検索するには 彼らの所有者 またはそのグループ 、実行:
$ find -perm /u+w,g+w
または、
$ find -perm /u=w,g=w
これらの2つのコマンドは、"find -perm /220"
と同じ役割を果たします。 コマンド。
詳細については、manページを参照してください。
$ man find
また、マニュアルページの代替案を確認してください Linuxコマンドのより単純化された例を学ぶため。
関連記事:
- Linuxで最大および最小のディレクトリとファイルを見つける方法
- Linuxのディレクトリツリーで最も古いファイルを見つける方法
- LinuxでXサイズよりも大きいまたは小さいファイルを検索する方法