Gzip использует короткий путь для файлов и каталогов - PullRequest
1 голос
/ 07 января 2020

Я создаю gz всех файлов stati c в каталоге сборки dist.

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

Здесь f равно --force, k равно --keep, q - это --quiet, а r - это --recursive. Можно ли сделать путь короче? Я пробовал это, но не работает.

gzip -fkqr ./dist/*.{html,css,js} ./dist/{css,js}/*.{css,js} 2>/dev/null
  • Обновление # 1

Выход для shopt | grep glob равен

dotglob         off
extglob         off
failglob        off
globasciiranges off
globstar        off
nocaseglob      off
nullglob        off
  • Обновление # 2

Выход для echo $- равен

himBHs

1 Ответ

1 голос
/ 07 января 2020

Ваше решение генерирует больше записей, чем вы хотите.

$ 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}
...