Wildcards
針對所有以某個字元串開頭並以某個字元串結尾的 zip 文件
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 將只匹配目錄和子目錄。