Gzip 对文件和目录使用短路径

Gzip use short path for files and directories

我正在构建目录 dist.

中创建所有静态文件的 gz
gzip -fkqr ./dist/*.html ./dist/*.css ./dist/*.js ./dist/css/*.css ./dist/js/*.js 2>/dev/null

这里f--forcek--keepq--quietr--recursive。有可能使路径更短吗?我试过了,但没有用。

gzip -fkqr ./dist/*.{html,css,js} ./dist/{css,js}/*.{css,js} 2>/dev/null

shopt | grep glob 的输出是

dotglob         off
extglob         off
failglob        off
globasciiranges off
globstar        off
nocaseglob      off
nullglob        off

echo $- 的输出是

himBHs

您的解决方案生成的条目比您想要的多。

$ echo gzip -fkqr ./dist/*.html ./dist/*.css ./dist/*.js ./dist/css/*.css ./dist/js/*.js 2>/dev/null
gzip -fkqr ./dist/*.html ./dist/*.css ./dist/*.js ./dist/css/*.css ./dist/js/*.js
$ echo gzip -fkqr ./dist/*.{html,css,js} ./dist/{css,js}/*.{css,js} 2>/dev/null
gzip -fkqr ./dist/*.html ./dist/*.css ./dist/*.js ./dist/css/*.css ./dist/css/*.js ./dist/js/*.css ./dist/js/*.js 
                                                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

我猜 gzip 失败并显示 no such file or directory 类消息,您看不到,因为您故意 2>/dev/null.

我猜你想要:

 gzip -fkqr ./dist/*.{html,css,js} ./dist/{css/*.css,js/*.js} 

或者也许:

 gzip -fkqr ./dist/{*.{html,css,js},css/*.css,js/*.js}