Wildcards
關於maldet掃描命令中的單個問號
有這個命令:
maldet -b --scan-all /home?/?/public_?
我不清楚為什麼我們需要問號,尤其是兩條路徑之間的單個問號,所以我做了
man maldet
並閱讀:-a, –scan-all 路徑
掃描路徑中的所有文件(預設:/home,萬用字元:?) 例如:maldet -a /home/?/public_html
我的問題:
為什麼我們需要一個額外的
?
between/home?
andpublic_?
?這個問題的另一個版本可能是,“如果 和 的組合
/home?
意味著,“找到underpublic_?
的所有實例,為什麼我們需要它們之間的額外?public_``/home``?
我無法追踪
scan
maldet 最終呼叫的命令的來源,但 maldet 將給定的路徑逐字傳遞給該scan
命令,所以我的假設是,進一步處理這些?
作為萬用字元本身的東西。該範例中萬用字元的假定目標是收集路徑,例如:
/home/user1/public_html
/home/user2/public_ftp
但不是:
/home/public_html
…換句話說,要求路徑元素存在於
/home
and/public_html
或之間/public_anything
。但是,請確保轉義或引用那些萬用字元路徑到
maldet
命令,因為如果您有任何形式的路徑:,例如:/home/*(single-character)*/public_*(single-character)*
/home/a/public_a
然後你的 shell 將擴展到那個(或任何匹配的)路徑,而不是傳遞
?
給 maldet 萬用字元程式碼。只要不存在單字元路徑,您可能會錯誤地使用那些未引用的路徑獲得“幸運”,因為如果沒有匹配的路徑(由 shell 看到),它會將包含?
- 的字元串傳遞給 maldet 命令. 一旦存在任何匹配的路徑,shell 將擴展?
這些路徑,並且 maldet 將不再看到(您的)萬用字元。