visando todos os arquivos zip começando com uma determinada string e terminando com uma certa

0

Eu executei o seguinte comando para zip todos os arquivos, começando com db- e terminando com .sql :

zip /var/www/html/db-$(date +\%F-\%T).zip /var/www/html/^db-*.sql

Ainda assim, obtenho:

zip warning: name not matched: /var/www/html/^db-*.sql

zip error: Nothing to do! (/var/www/html/db.zip)

Como usei um acento circunflexo para corresponder a todos que começam com db- e que adicionei *.sql no final para corresponder a todos os que terminam com .sql , não entendo meu erro.

Como iniciante em regex, tentei pesquisar dados, mas não achei nada útil ou claro. Eu também tentei outras variações com ^ , mas todas falharam com um erro semelhante.

    
por JohnDoea 09.08.2017 / 17:47

1 resposta

3

Parâmetros Bash não são expressões regulares, são globs. Use:

$ zip /var/www/html/db-$(date +\%F-\%T).zip /var/www/html/db-*.sql

Do manual de bash , em "Correspondência de padrões":

* Matches any string, including the null string. When the globstar shell option is enabled, and * is used in a pathname expansion context, two adjacent *s used as a single pattern will match all files and zero or more directories and subdirectories. If followed by a /, two adjacent *s will match only directories and subdirectories.

    
por 09.08.2017 / 17:50

Tags