Wildcards

針對所有以某個字元串開頭並以某個字元串結尾的 zip 文件

  • April 14, 2019

zip我對以開頭db-和結尾的所有文件執行以下命令.sql

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

然而我得到:

zip 警告:名稱不匹配:/var/www/html/^db-*.sql

郵編錯誤:無事可做!(/var/www/html/db.zip)

由於我使用插入符號來匹配所有以 開頭的字元db-,然後*.sql在最後添加以匹配所有以 結尾的字元.sql,所以我不明白我的錯誤。

我嘗試了其他變體,^但都因類似錯誤而失敗。

Bash 參數不是正則表達式,它們是 glob。採用:

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

來自bash的手冊,在“模式匹配”下:

* 匹配任何字元串,包括空字元串。當globstar啟用 shell 選項並*在路徑名擴展上下文中使用時*,用作單個模式的兩個相鄰的 s 將匹配所有文件以及零個或多個目錄和子目錄。如果後跟 a /,兩個相鄰*的 s 將只匹配目錄和子目錄。

引用自:https://unix.stackexchange.com/questions/385002