zip
我对以 开头db-
和结尾的所有文件运行以下命令.sql
:
zip /var/www/html/db-$(date +\%F-\%T).zip /var/www/html/^db-*.sql
但我得到:
zip 警告:名称不匹配:/var/www/html/^db-*.sql
zip 错误:无需执行任何操作!(/var/www/html/db.zip)
由于我使用插入符号来匹配所有以 开头的内容db-
,然后*.sql
在最后添加以匹配所有以 结尾的内容.sql
,我不明白我的错误。
我尝试了其他变体,^
但都因类似错误而失败。
答案1
Bash 参数不是正则表达式,它们是通配符。使用:
$ zip /var/www/html/db-$(date +\%F-\%T).zip /var/www/html/db-*.sql
来自bash
的手册,在“模式匹配”下:
*
匹配任何字符串,包括空字符串。当globstar
启用 shell 选项并*
在路径名扩展上下文中使用时,*
用作单个模式的两个相邻 s 将匹配所有文件以及零个或多个目录和子目录。如果后跟 a/
,则两个相邻的*
s 将仅匹配目录和子目录。