zip - diferença entre "." e padrões "* .[^.]*" ao usar o sinalizador -r

zip - diferença entre "." e padrões "* .[^.]*" ao usar o sinalizador -r

Ao compactar recursivamente o conteúdo de um diretório (incluindo arquivos e diretórios ocultos) usando zipo comando com -rsinalizador, há alguma diferença entre:

zip ../foo.zip -r .

e:

zip ../foo.zip -r * .[^.]*

ou são exatamente iguais?

O primeiro comando deve usar o diretório atual ( .) como destino e -ro parâmetro deve incluir por si só todos os arquivos e diretórios ocultos.

O segundo comando, se não estou errado, corresponde a todos os arquivos que não são pontos (primeiro *) no diretório atual e, em seguida, a todos os arquivos que começam com .char, seguido por qualquer caractere, exceto ponto ( [^.]) - portanto, isso exclui ..a ida para o diretório pai.

Encontrei o segundo comando em um exemplo on-line, mas não entendo como usá-lo no lugar do primeiro comando mais simples, se ele agir exatamente da mesma maneira.

Também no script shell POSIX, o ShellCheck reclama da * .[^.]*notação que deveria ser substituída por ./* .[!.]*, e para mim esse é outro bom motivo para não usá-lo, se um simples .fizer o mesmo trabalho.

Meu palpite é que no exemplo que encontrei zip ../foo.zip * .[^.]*(sem -rsinalizador) o comando foi executado e -ro sinalizador foi simplesmente adicionado, sem pensar que -rjá teria cuidado de incluir arquivos e diretórios ocultos se o caminho atual ( .) fosse fornecido como destino no lugar de * .[^.]*.

Então, minhas perguntas são: esses 2 comandos são equivalentes ao usar o -rsinalizador? Meu palpite está correto?

informação relacionada