定位以特定字符串开头并以特定字符串结尾的所有 zip 文件

定位以特定字符串开头并以特定字符串结尾的所有 zip 文件

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 将仅匹配目录和子目录。

相关内容