Пакетное gzip сжатие css и js-файлов

Имеется классическая конфигурация Apache + Nginx с включенным статическим gzip-сжатием. Хочется не грузить процессор сжатием файлов на лету, а заранее положить рядом предварительно сжатые файлы.

Сделать это можно командой:

find . -regex ".*\(css\|js\)$" -exec bash -c 'gzip -c -5 "{}" > "{}.gz" &&  touch "{}.gz" -r "{}"' \;

Что она делает:

  • найти все css/js файлы в текущей директории
  • для каждого найденного файла выполнить в командной оболочке набор инструкций в апострофах
  • текущий файл {} сжать gzip с компрессией 5 и сохранить с именем, равным имени текущего файла + расшиерние gz
  • для созданного файла установить дату модификации, как у текущего