Em cd maldetect-*
, todos os arquivos e diretórios que correspondem a esse padrão são expandidos na linha de comando. Você tem pelo menos o arquivo .tar
e provavelmente um diretório encontrado dentro dele. Você só pode estar em um diretório por vez, então cd
para vários diretórios não faz sentido.
Em cd "maldetect-*"
, não há expansão. O comando em si é bom, mas você provavelmente não tem um diretório com um asterisco no nome, então ele não encontrará nada para cd
.
Se você sabe que tem apenas um diretório que corresponde ao padrão, você pode usar cd maldetect-*/
com uma barra à direita para pedir ao shell que expanda apenas os nomes de diretório.
Se você pode ter vários diretórios que correspondem ao padrão, você terá que encontrar o mais novo ou procurar dentro do arquivo para encontrar o nome do diretório lá.
Encontrar o mais novo é discutido em BashFAQ 003 (ou talvez BashFAQ 099 ), e provavelmente algumas perguntas no site, como Encontre o arquivo mais novo. Várias restrições de tipo de arquivo .
No caso trivial em que todos os nomes de arquivos são conhecidos como agradáveis, ls -tr | tail -1
pode funcionar, mas veja
Por que você não deve analisar a saída de ls (1) .
É claro que não deve ser difícil espiar dentro do arquivo, mas isso também supõe que o arquivo seja 'legal' de várias maneiras:
$ tar tzf maldetect-current.tar.gz | head -1 | cut -d/ -f1
maldetect-1.6.2