Find
遞歸觸摸和gzip目錄中的所有HTML,CSS,JS文件
我正在嘗試優化 Nginx 伺服器。我啟用了 Gzip_Static_Module 來提供預壓縮的 gzip 靜態文件,例如 CSS、JS、HTML。
Nginx Wiki 說壓縮和未壓縮文件的時間戳匹配。所以,我試圖在 Gzipping 之前觸摸文件。
我正在嘗試
*.gz
使用以下命令觸摸並生成這些靜態文件:$ su -c "find . -type f -name "*.css" -size +1024b -exec sh -c "touch {} \ && gzip -9v < {} > {}.gz" \;" $ su -c "find . -type f -name "*.js" -size +1024b -exec sh -c "touch {} \ && gzip -9v < {} > {}.gz" \;" $ su -c "find . -type f -name "*.html" -size +1024b -exec sh -c "touch {} \ && gzip -9v < {} > {}.gz" \;"
但我收到“未找到使用者 {}”錯誤。
誰能幫我上面的命令有什麼問題?每當任何未壓縮文件的時間戳發生變化(Cronjob 可能是)時,是否有更好的方法可以自動生成 *.gz?
我認為您遇到了引用問題,因為您嘗試
su -c ...
執行的命令中包含雙引號。您可能想嘗試將整個內容包含在單引號中。$ su -c 'find . -type f -name "*.css" -size +1024b -exec sh -c "touch {} && \ gzip -9v < {} > {}.gz" \;'
您也可以轉義這些包含的雙引號,但這通常會使調試變得混亂,所以我會避免這種情況,但根據您的風格/口味偏好也是另一種選擇。