Existe este comando:
maldet -b --scan-all /home?/?/public_?
Não ficou claro para mim por que precisamos dos pontos de interrogação, especialmente aquele entre os dois caminhos. Então fiz man maldet
e li:
-a, --scan-all CAMINHO
Verifica todos os arquivos no caminho (padrão: /home, curinga:?), por exemplo: maldet -a /home/?/public_html
Minha pergunta:
Por que precisamos de um extra ?
entre /home?
e public_?
?
Uma versão alternativa desta questão poderia ser, "se a combinação de /home?
e public_?
significa" encontrar todas as instâncias de public_
under /home
, por que precisamos do extra ?
entre elas?
Responder1
Não consegui rastrear a origem do scan
comando que maldet eventualmente chama, mas maldet passa o caminho fornecido literalmente para esse scan
comando, então minha suposição é que algo mais adiante os processa ?
como curingas.
O objetivo presumido dos curingas nesse exemplo é reunir caminhos como:
/home/user1/public_html
/home/user2/public_ftp
mas não:
/home/public_html
... em outras palavras, exigir que exista um elemento de caminho entre /home
e /public_html
ou /public_anything
.
No entanto , certifique-se de escapar ou citar esses caminhos curinga para o maldet
comando, porque se você tiver algum caminho no formato: , como:/home/(single-character)/public_(single-character)
/home/a/public_a
então seu shell se expandirá para esse (ou qualquer um desses caminhos correspondentes), em vez de passar ?
para o código curinga maldet. Você pode erroneamente ter "sorte" usando esses caminhos sem aspas, desde que não existam caminhos de um único caractere, porque se não houver caminhos correspondentes (vistos pelo shell), ele passará a ?
string contendo - junto com o comando maldet . Assim que existirem caminhos correspondentes, o shell expandirá o ?
para esses caminhos e maldet não verá mais (seus) curingas.