Maldet scanコマンドの単一疑問符情報

Maldet scanコマンドの単一疑問符情報

次のコマンドがあります。

maldet -b --scan-all /home?/?/public_?

なぜ私たちに疑問符が必要なのか、特に2つのパスの間に単一の疑問符が必要なのかはわかりませんでしたman maldet

-a, --すべてのパスを検索

パス内のすべてのファイルをスキャンします(デフォルト:/home、ワイルドカード:?)例:maldet -a /home/?/public_html

私の質問:

?なぜと/home?の間に追加の値を追加するのですかpublic_?

/home?この質問の別のバージョンは次のとおりです。 "との組み合わせが" public_?underのすべてのインスタンスを見つける場合、なぜそれらの間に追加の値が必要なのですか? " "。public_/home?

答え1

scanMaldetが最終的に呼び出すコマンドのソースを追跡することはできませんが、Maldetは与えられたパスをコマンドにそのまま渡すので、これらのパスはワイルドカード自体としてさらに処理されると仮定しますscan?

この例では、ワイルドカードの想定される目標は、次のパスを収集することです。

  • /home/user1/public_html
  • /home/user2/public_ftp

しかし:

  • /home/public_html

...つまり、/homeまたは/public_html間にパス要素が必要です/public_anything

maldetただし、次の形式のパスがあるように、コマンドのワイルドカードパスをエスケープするか、引用符で囲む必要があります。/home/(single-character)/public_(single-character)

  • /home/a/public_a

?これにより、シェルは Maldet ワイルドカードコードを渡すのではなく、そのパス(または一致するパス)に展開されます。単一の文字パスが存在しない限り、引用符なしのパスによって誤って「幸運」が得られる可能性があります。これは、一致するパス(シェルで検証)がない場合は、?-を含む文字列がMaldetコマンドに渡されるためです。一致するパスがある場合、シェルはそのパス?に拡張され、Maldetは(あなたの)ワイルドカードを見ることができません。

関連情報