- 検索の perm フラグ

- 検索の perm フラグ

私はこのコマンドを理解しようとしています。

find /home/ -type d \( -perm -0002 -a ! -perm -1000 \) 2>/dev/null

私はそれが「ホーム」ディレクトリのすべてのディレクトリを調べ、すべてのstderrメッセージをファイルにリダイレクトすることを知っています(これを抑制するため)。しかし、特に中間部分については混乱しています。

\( -perm -0002 -a ! -perm -1000 \)

スラッシュとはどういう意味ですか?私は! -perm -1000、これらの権限を持たないディレクトリの検索が、これらの権限を持つディレクトリの検索を意​​味すると仮定します-perm -0002。しかし、私は644形式(たとえば)の権限だけを見ることに慣れています。なぜ数字は4つですか?また、ロゴは何に使用されますか-a

ベストアンサー1

では、-type d \( -perm -0002 -a ! -perm -1000 \)最初にスラッシュはシェルの括弧を超えているため、シェルから特殊演算子として解釈されるのではなく、引数として渡されることがあります。 (明確な理由で同じ例を望んでいます。>'('"("find()

括弧は条件をグループ化-aし、そして接続会社。これは-type d、明示的に連結せずにここで使用されているwithおよび括弧で囲まれた式と同様に、連続条件の暗黙的なデフォルト値でもあります-a。この式はと全く同じです-type d -perm -0002 ! -perm -1000。実際には括弧だけが必要です。または接続会社-o

-type d明らかにファイルを見つけることを意味します。-perm -NNNNみんな許可ビットを設定しますNNNN。または、この場合、ディレクトリに0002「他の人のために書く」権限セット()があり、固定ビットが設定されていません(1000)(不正のため)。ここの組み合わせは次のように書くこともできそうです-perm -o+w ! -perm -o+t。権限文字列の前のダッシュに注意してください。ダッシュがなければ意味が異なります。たとえば、参照してください。Linux 検索マニュアルページ、「(expr)」、「-perm モード」を探します。

ディレクトリへの書き込み権限がある場合は、そのディレクトリ内でファイルを作成、削除、および名前を変更でき、固定ビットを使用すると、他のユーザーが所有するファイルが削除または名前変更されるのを防ぎます。完全な式は、誰でもファイルを削除したり名前を変更したりできるディレクトリを探します。

おすすめ記事