Имеется классическая конфигурация Apache + Nginx с включенным статическим gzip-сжатием. Хочется не грузить процессор сжатием файлов на лету, а заранее положить рядом предварительно сжатые файлы.
Сделать это можно командой:
find . -regex ".*\(css\|js\)$" -exec bash -c 'gzip -c -5 "{}" > "{}.gz" && touch "{}.gz" -r "{}"' \;
Что она делает:
- найти все css/js файлы в текущей директории
- для каждого найденного файла выполнить в командной оболочке набор инструкций в апострофах
- текущий файл {} сжать gzip с компрессией 5 и сохранить с именем, равным имени текущего файла + расшиерние gz
- для созданного файла установить дату модификации, как у текущего